我想加载检查点文件,更改一些变量((1,1,1024,55)
->;(1,1,1024,60)
)的形状,然后再次保存检查点
我所做的:
1。我已加载检查点
saver = tf.train.import_meta_graph(meta)
saver.restore(sess, ckpt
试图使用tf.assign()
:
for var in tf.global_variables():
if var.name == "22-convolutional/biases:0":
assign = tf.assign(var, a, validate_shape=False)
sess.run(assign)
然后,当我试图执行
sess.run(tf.global_variables_initializer())
我有个错误
Assign requires shapes of both tensors to match. lhs shape= [1,1,1024,60] rhs shape= [1,1,1024,55]
[[Node: 22-convolutional/kernel/Adam_1/Assign = Assign[T=DT_FLOAT,
_class=["loc:@22-convolutional/kernel"], use_locking=true, validate_shape=true,
_device="/job:localhost/replica:0/task:0/cpu:0"](22-convolutional/kernel/Adam_1, zeros_51)]]
有什么办法试试吗?在
谢谢你!在
你不能改变变量的形状。形状是在创建时定义的,您分配给它的每个值都必须具有该形状。如果新值总是小于原始值,可以考虑执行slice assignment,如果这对您有帮助的话。或者你可以使用一个新的变量,或者别的什么。但是没有“技巧”可以让你真正改变形状。在
相关问题 更多 >
编程相关推荐