不能以十为单位指定不同形状的值

2024-04-26 14:18:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想加载检查点文件,更改一些变量((1,1,1024,55)->;(1,1,1024,60))的形状,然后再次保存检查点

我所做的:

1。我已加载检查点

saver = tf.train.import_meta_graph(meta)
saver.restore(sess, ckpt
  1. 试图使用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)]]

有什么办法试试吗?在

谢谢你!在


Tags: runvartfvariablesvalidatekernelglobal检查点
1条回答
网友
1楼 · 发布于 2024-04-26 14:18:23

你不能改变变量的形状。形状是在创建时定义的,您分配给它的每个值都必须具有该形状。如果新值总是小于原始值,可以考虑执行slice assignment,如果这对您有帮助的话。或者你可以使用一个新的变量,或者别的什么。但是没有“技巧”可以让你真正改变形状。在

相关问题 更多 >