【问题标题】:Why do we need to worry about the batch dimension when specifying a model in Tensorflow?为什么我们在 Tensorflow 中指定模型时需要担心批量维度?
【发布时间】:2016-07-08 20:12:36
【问题描述】:

考虑神经网络中每一层的批次维度似乎有点麻烦。为什么我们在 Tensorflow 中没有一些功能可以为整个模型设置批量大小?

【问题讨论】:

    标签: tensorflow tensorflow-serving


    【解决方案1】:

    在 tensorflow 中,您不必考虑批量大小。

    MNIST Tutorial 中解释了 tensorflow 如何处理各种大小的批次。

    引用教程:

    x = tf.placeholder(tf.float32, shape=[None, 784])
    y_ = tf.placeholder(tf.float32, shape=[None, 10])
    

    输入图像 x 将由浮点数的二维张量组成。这里我们给它分配了[None, 784]的形状,其中784是单个扁平化MNIST图像的维度,None表示第一个维度,对应于batch size,可以是任意大小。 em>

    【讨论】:

    • 我理解这部分。我知道批量大小不需要提前设置。但是,每一层的变量仍然带有批量大小维度,在模型中编写所有内容时,您总是需要担心这个维度,尤其是对于重塑。我说的是一个变量根本不带有这个维度的场景,但在最后,你说,为批次中的每个样本复制相同的图表。这可以节省很多复杂性。
    • Tensorflow 是一个通用计算框架。有些操作执行批量操作,有些没有批量大小的概念。后者的示例包括 matmul 和所有各种元素操作,如 tanh 和张量加法。这些只是遵循类似 numpy 的广播规则。要求每个操作处理批次实际上会限制 tensorflow api 并使开发新操作更加复杂。
    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多