gpt4 book ai didi

python - tensorflow 偏差和权重变量

转载 作者:行者123 更新时间:2023-12-01 02:08:59 24 4
gpt4 key购买 nike

我创建了一个用于逐像素分类的深度卷积神经网络。我用于训练的图像大小为 32x32x7,因此经常使用数字 7168。下面您可以看到我的模型通过权重和偏差进行 reshape 和修改的最终结果。我对这个重量和偏见有点困惑。 模型训练期间权重和偏差会自动调整吗?我从未为这些变量分配值,因此我假设 train_step 将根据交叉熵分数修改它们。这是正确的吗?

final = tf.add(add1,add2)
final = tf.reshape(final, [-1, 7168])

W_final = weight_variable([7168,7168,3])
b_final = bias_variable([7168,3])
final_conv = tf.tensordot(final, W_final, axes=[[1], [1]]) + b_final

cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels=y_, logits=final_conv))
train_step = tf.train.AdamOptimizer(1e-5, epsilon = .1).minimize(cross_entropy)

最佳答案

您在模型中创建的变量会发生什么取决于您对它们的处理方式。正如您所指出的,TensorFlow 的典型用例是根据一些损失分数(在您的情况下是交叉熵)自动调整(“训练”)它们。你有张量cross_entropy计算损失,并且 train_step ,一种优化操作,根据 trainable=False 的值,根据某些规则更新模型中的可训练变量(默认情况下,除非指定 cross_entropy ,否则您创建的变量是可训练的)。 。除此之外,您还需要:

  • 一个 tf.global_variables_initializer 操作。
  • 新的session .
  • 在 session 中运行变量初始值设定项操作。这将为您的变量提供初始值。请注意,此初始值的性质将取决于您在创建变量时选择的初始值设定项(零、随机正态等)。
  • 运行train_step使用您的训练数据直到 cross_entropy具有“足够好”的值(value)。每次执行此操作时,变量的值都会发生一些变化以使模型适合数据。

所以实际上变量发生的所有事情或多或少都是明确的。而且你可以选择对它们做任何其他事情,你可以有一些不可训练的变量,例如,你可以添加正则化器等。

关于python - tensorflow 偏差和权重变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48832052/

24 4 0
文章推荐: javascript - 我如何使用 jQuery 显示前 8 个元素?
文章推荐: php - 如何将此 postgres db 查询的结果转换为 json 以返回到我的 jquery 调用?
文章推荐: jquery - 如何在深度为1的中找到?