使用python 怎么可能没有ValueError,下面罗列我见到的几种错误,虽然很低级,但是不试过还是很难找到错误的
使用tensorflow时,出现在卷积层,原因在于初始化卷积权重或者偏置时, 采用整数进行初始化,导致卷积权重或者偏置为整形变量。
下面贴出我错误的代码
def bias_variable(shape, name):
with tf.name_scope('Bias'):
initial = tf.constant(0, shape=shape)
biases = tf.Variable(initial)
tf.summary.histogram(name+'/Biases_function', biases)
return biases
修改结果
def bias_variable(shape, name):
with tf.name_scope('Bias'):
initial = tf.constant(0.0, shape=shape)
biases = tf.Variable(initial)
tf.summary.histogram(name+'/Biases_function', biases)
return biases
也就是0于0.0的问题,在修改初始化参数时,一不留神就改错了,然后还不知道发生了什么。
我错误的原因在于使用tensorflow的反卷积tf.nn.conv2d_transpose是制定的output_shape出错了,其实函数根据输入和卷积核是可以计算输出尺寸的,也就是tf.nn.conv2d_transpose的信息是冗余的,因此,如果冗余的信息对应不上,导致误差无法反向传递。
错误的代码为:
level_map = tf.image.resize_images(gt_level, size)
说明输入的变量gt_level不是一个3-D或者4-D的tensor。查找修改即可。tf.image.resize_images的定义如下:
Signature:
tf.image.resize_images(images, size, method=0, align_corners=False)
Args:
[batch, height, width, channels]
or[height, width, channels]
.new_height, new_width
. TheResizeMethod.BILINEAR
.False
.