Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 张量流偏差和权重变量_Python_Tensorflow_Deep Learning_Conv Neural Network - Fatal编程技术网

Python 张量流偏差和权重变量

Python 张量流偏差和权重变量,python,tensorflow,deep-learning,conv-neural-network,Python,Tensorflow,Deep Learning,Conv Neural Network,我创建了一个用于像素分类的深度卷积神经网络。我用于训练的图像大小为32x32x7,因此7168被大量使用。下面您可以看到我的模型被权重和偏差重塑和修改的最终结果。我对这个重量和偏差有点困惑权重和偏差是否会在模型训练期间自动调整?我从未为这些变量赋值,因此我假设训练步骤将根据交叉熵得分修改它们。这是正确的吗 final = tf.add(add1,add2) final = tf.reshape(final, [-1, 7168]) W_final = weight_variable([7168

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

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的典型用例是根据一些损失分数(在您的例子中是交叉熵)让它们自动调整(“训练”)。您有计算损失的张量
交叉熵
,以及更新模型中可训练变量的优化操作
训练步骤
(默认情况下,您创建的变量是可训练的,除非指定了
trainable=False
)根据一些规则,取决于
交叉熵的值。除此之外,您还需要:

  • 手术
  • 一个新的
  • 在会话中运行变量初始值设定项操作。这将为变量提供初始值。请注意,此初始值的性质将取决于创建变量时选择的初始值设定项(零、随机法线等)
  • 使用训练数据运行
    训练步骤
    ,直到
    交叉熵
    有一个“足够好”的值。每次执行此操作时,变量的值都会发生一些变化,以使模型适合数据

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

什么是
权重变量
偏差变量
,这些是你的函数还是类还是其他什么?