gpt4 book ai didi

tensorflow 小批量训练

转载 作者:行者123 更新时间:2023-12-03 00:37:14 25 4
gpt4 key购买 nike

如何使用小批量数据在 TensorFlow 中训练网络?在 Deep-MNIST 教程中,他们使用:

for i in range(1000):
batch = mnist.train.next_batch(50)
train_step.run(feed_dict={x: batch[0], y_: batch[1]})

我的问题是 - xy_ 变量的尺寸是否适合单个示例,以及 batch[0], batch[1] 是此类输入和输出的列表?在这种情况下,TensorFlow 会自动为这些列表中的每个训练示例添加梯度吗?或者我应该创建我的模型,以便 xy_ 获得整个小批量?

我的问题是,当我尝试为每个占位符提供一个列表时,它会尝试输入占位符的整个列表,因此我会得到大小不匹配的结果: Cannot feed value of shape (n, m ) 对于张量 u'ts:0',其形状为 '(m,)',其中 n 是小批量大小,m 是单个输入尺寸。

谢谢。

最佳答案

在 MNIST 教程中,xy_ 是具有已定义形状的占位符:

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

shape=[None, 784] 表示该占位符具有 2 维。

那么,回答你的第一个问题:

are x and y_ variables with dimensions suitable to a single example

第一个维度可以包含未定义数量的元素(例如 1, 2, ... 50 ...),第二个维度可以包含确切的 784 = 28*28 个元素(这是单个 MNIST 的特征)图像)。

如果您使用形状为 [1, 784] 或 [50, 784] 的 Python 列表提供图形,这对于 tensorflow 来说是完全相同的,它可以毫无问题地处理它。

batch[0],batch[1] are lists of such inputs and outputs? in the tutorial they define batch calling batch = datasets.train.next_batch(50). Thus:

  • batch[0] 是形状为 [50, 784] 的列表
  • batch[1] 是形状为 [50, 10] 的列表

will TensorFlow automatically add the gradients for each training example in these lists? or should I create my model so that x and y_ get an entire minibatch?

Tensorflow 会为您处理这个问题。

您报告的错误无法为张量 u'ts:0' 提供形状 (n, m) 的值,其形状为“(m,)”是形状不匹配错误。

您不会 reshape 输入以使其具有与占位符相同的形状。

关于 tensorflow 小批量训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38157794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com