【问题标题】:Tensorflow: any drawback in setting batch size to None? [duplicate]Tensorflow:将批量大小设置为无的任何缺点? [复制]
【发布时间】:2017-04-22 12:40:02
【问题描述】:

有时建议在网络创建期间将批量大小设置为无,这样它就不会绑定到任何特定的批量大小。

我的问题是,在评估之前让维度(批量大小,但也可以是某些特殊网络的输入宽度或高度)未知时,张量流是否有任何惩罚?让网络提前知道batch size有什么好处吗?

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    tf.placeholder() 根本不需要您指定形状。正如您从文档中看到的,默认情况下占位符根本没有形状。

    设置形状的好处是可以更快地捕获各种错误。例如,这将毫无问题地运行

    a = tf.placeholder(tf.float32, [None], 'a')
    b = tf.placeholder(tf.float32, [None], 'b')
    tf.add(a, b)
    

    如果你要指定一个形状

    a = tf.placeholder(tf.float32, [3], 'a')
    b = tf.placeholder(tf.float32, [5], 'b')
    tf.add(a, b)
    

    它会抱怨形状不兼容,您将能够快速解决您的问题(想象有一个包含数百个操作的图表,您运行它 3 小时才发现有错误)

    【讨论】:

    • 有道理,但我的问题更具体地针对批量大小,这在图表中很少改变。我仍然不明白指定批量大小如何有助于发现错误。
    • @user1735003 据我所知,指定形状没有其他优势。因此,如果它不能帮助您发现错误,那么您可以将其保留为 None 而不会受到任何惩罚
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 2018-03-22
    • 2018-02-21
    • 1970-01-01
    相关资源
    最近更新 更多