我从SavedModel格式恢复了Tensorflow模型,并在末尾添加了一个新层,以便对其进行微调。但是,我意识到从SavedModel格式到模型的标签是形状(?,256,256,2),而我当前的标签是(?,256,256,4)。因此,我得到以下错误:
ValueError: Cannot feed value of shape (16, 256, 256, 4) for Tensor 'labels_1:0', which has shape '(?, 256, 256, 2)'
有没有办法修改我从SavedModel格式还原的原始模型的输入?还是从原始模型中手动提取权重并将其分配给同一模型的新版本的唯一方法
下面是我正在使用的代码示例:
meta_graph_def = tf.saved_model.loader.load(
sess,
[tf.saved_model.tag_constants.SERVING],
model_path
)
relu_op = sess.graph.get_tensor_by_name('model/Relu_1:0')
with tf.variable_scope('fine_tune_layer'):
tune_conv_layer = slim.conv2d(relu_op,
output_channels,
1,
stride=1,
rate = 1,
padding=('SAME'),
activation_fn=None
)
我认为您没有正确地添加新层。你加了哪一层?你似乎不知怎么地对频道进行了上采样。您使用了类似
tf.keras.layers.Conv2DTranspose
或类似tf.keras.layers.Conv2D
的东西吗?你能分享一些代码吗您应该有如下内容:
请注意,上面的代码很粗糙,只是给你一个想法,我不知道你想做什么
相关问题 更多 >
编程相关推荐