Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The meaning of Paddle command line flag --test_period is not clear. #283

Closed
backyes opened this issue Oct 28, 2016 · 5 comments
Closed

The meaning of Paddle command line flag --test_period is not clear. #283

backyes opened this issue Oct 28, 2016 · 5 comments
Assignees
Labels

Comments

@backyes
Copy link
Contributor

backyes commented Oct 28, 2016

Paddle 提供了一个命令行参数 --test_period,但是其意思并不明确:

  • How long period(pass) to wait until next testing?
  • How many samples used for one test ?
void Tester::testOnePeriod() {
  DataBatch dataBatch;
  int64_t batchSize = config_->getOptConfig().batch_size();
  bool testAllData =
      intconfig_->testPeriod == 0 || intconfig_->testAllDataInOnePeriod;
  int batches =
      testAllData ? std::numeric_limits<int>::max() : intconfig_->testPeriod;

Here test_period indicates two meaning:

  • batches used for testing
  • wait N batches training passed, then do testing.

It's is confusing, and not be correct in doc:
http://www.paddlepaddle.org/doc/ui/cmd_argument/detail_introduction.html?highlight=test_period

related issue:
#279
#266

@reyoung @emailweixu

@backyes backyes assigned backyes and unassigned reyoung Oct 28, 2016
@backyes backyes added this to the 0.8.1 milestone Oct 28, 2016
@reyoung reyoung self-assigned this Oct 28, 2016
@reyoung
Copy link
Collaborator

reyoung commented Oct 28, 2016

the documentation is not right. I will add another issue to fix docs first.

@backyes
Copy link
Contributor Author

backyes commented Oct 28, 2016

原代码理解起来应该是,为了达到在pass未结束前做test,且支持用一小部分batch数据做test,而不是全量的数据,这个实现上引入了对test_period含义的混淆。

为此,我们尝试添加两个变量option,

  • --test_batches_while_training, 指示在pass未结束前的test用多少batch test
  • --test_batches_at_end, 指示在pass结束后的test用多少batch test。

@reyoung @emailweixu @luotao1 @qingqing01 @wangkuiyi 你们的意见呢?

@reyoung
Copy link
Collaborator

reyoung commented Oct 28, 2016

基本同意,尤其是在这个接口没有被广泛使用的时候,赶紧把这个不符合直觉的接口改了。

@其他人 的意见。

@wangkuiyi
Copy link
Collaborator

wangkuiyi commented Oct 30, 2016

从上面的讨论看,貌似大致意思是:paddle提供了一个命令行参数 --test_period,但是其意思并不清晰。如果是这个意思,那么我赞同修改这个接口。但是我想说的是更重要的一个问题:

上面的讨论里,几乎没有一个句子的主谓宾是全的

这导致读者很难理解讨论者在说什么。更别提提出意见了。我举几个例子:

例子一

doubt on --test_period meaning.

没有主语。如果加上主语,应该是 I doubt on --test_period meaning. 实际上,即便如此意思也不清楚 —— 一个issue不是抒情散文,不是用来抒发个人感想的,而是一篇议论文,以客观为要。这里可以改成

The meaning of Paddle command line flag --test_period is not clear.

例子二

the documentation is not good. Add another issue fix docs first.

英语句子的第一个字母应该是大写的。

"The document is not good" —— 表意不清晰。应该说的更明确,“不好”在哪里? 我们的文档确实有很多问题,比如没有定义 period 的单位,没有说明这个flag的上下文。这些得说出来,才能帮助其他人看清楚问题,启发讨论。如果笼统的说“不好”,和没说一样,那就还不如不说了。

"Add another issue fix docs first" —— 语法有问题,没有 “to”。至少语法应该改成 "Let's add another issue on making the document explaining the flag clearly." 另一个问题是,这是一个祈使句,却没有说明谁来加这个issue。其实可以是

I can add another issue on making the document explain the flag clearly. How do you thing about this?

例子三

原代码理解起来应该是为了避免在pass未结束前的test做一小部分batch的test,而不是全量的数据。

这句话完全看不明白在说什么了。可能有一些上下文没有说清楚,而是混入到一个句子里了。

@wangkuiyi
Copy link
Collaborator

wangkuiyi commented Oct 30, 2016

我之前在几家大互联网公司的工作中都体会到:工程师们对自然语言(语文水平)的重视远不如编程语言。我小时候也是如此。反思自己,我曾经受到过一些错误说法的误导。比如:

学好数理化,走遍天下都不怕

还有

数学是一切科学之母

当时很多同学们都更重视数理学科,而语文因此被当成小姑娘抒情的玩意儿。

多年之后,我发现这些说法错得都很离谱。

互联网行业里有很多“学好数理化”的人,但是大都位于公司底层,多年从事一线工作,没有团队组织的经验,也没有把握项目的大局观,总是一副怀才不遇的样子,天天骂印度同事“光说不做”。可是事实就是在美华人的平均收入远低于印度同事。

仔细观察一下就不难发现,能在硅谷工作的印度人和中国人的“做事”的水平都不会差。而“说”的水平差距很大。如果我们事儿都说不清楚,其他同事怎么敢信任我们,委以重任呢?

反思“数学是一切科学之母”的说法 —— 实际上,数学只是对物理现象的一种符号表示,帮助记录和讨论逻辑推理过程。应该反过来说“物理是数学之母”才对。

如果说有一种学科是科学之母,那得是”逻辑学“。按照现代科学(science)的定义,逻辑是形成理论的基础。人类历史上每一个伟大文明都伴生着极高水平的语文教学。比如:

  1. 儒学讲究”策论“——这是科举考试的基础,奠定了一千年来中华文明的基础。
  2. 藏传佛教讲究”因明“——说白原果,也就是逻辑。
  3. 古希腊文明的基础是”逻辑“,也是logic这个词的出处,著名的例子包括亚里士多德的“三段论”。

希望这个项目里的朋友们,仔细想想我说的这个事儿 —— 语文是一切科学之母

@backyes backyes changed the title doubt on --test_period meaning. The meaning of Paddle command line flag --test_period is not clear. Oct 31, 2016
@backyes backyes self-assigned this Nov 9, 2016
@qingqing01 qingqing01 modified the milestones: 0.10.0, 0.9.0 Nov 11, 2016
thisjiang pushed a commit to thisjiang/Paddle that referenced this issue Oct 28, 2021
refine readme format
gglin001 added a commit to graphcore/Paddle-fork that referenced this issue Dec 8, 2021
* ci WITH_TESTING

* restore

* fix build with test on

* up x
wangxicoding pushed a commit to wangxicoding/Paddle that referenced this issue Dec 9, 2021
DesmonDay pushed a commit to DesmonDay/Paddle that referenced this issue May 15, 2023
danleifeng pushed a commit to danleifeng/Paddle that referenced this issue Sep 13, 2023
lizexu123 pushed a commit to lizexu123/Paddle that referenced this issue Feb 23, 2024
WAYKEN-TSE pushed a commit to WAYKEN-TSE/Paddle that referenced this issue Dec 6, 2024
Update example/stable_diffusion/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants