是否可以在tensorflow中重命名给定模型的变量范围?
例如,我根据教程为MNIST数字创建了一个logistic回归模型:
with tf.variable_scope('my-first-scope'):
NUM_IMAGE_PIXELS = 784
NUM_CLASS_BINS = 10
x = tf.placeholder(tf.float32, shape=[None, NUM_IMAGE_PIXELS])
y_ = tf.placeholder(tf.float32, shape=[None, NUM_CLASS_BINS])
W = tf.Variable(tf.zeros([NUM_IMAGE_PIXELS,NUM_CLASS_BINS]))
b = tf.Variable(tf.zeros([NUM_CLASS_BINS]))
y = tf.nn.softmax(tf.matmul(x,W) + b)
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
saver = tf.train.Saver([W, b])
... # some training happens
saver.save(sess, 'my-model')
现在我想在'my-first-scope'
变量作用域中重新加载保存的模型,然后将所有内容再次保存到一个新文件中,并在新变量作用域'my-second-scope'
下保存。
基于keveman的回答,我创建了一个python脚本,您可以执行该脚本来重命名任何TensorFlow检查点的变量:
https://gist.github.com/batzner/7c24802dd9c5e15870b4b56e22135c96
可以替换变量名中的子字符串,并为所有名称添加前缀。用调用脚本
带可选参数
以下是脚本的核心功能:
示例:
将变量
scope1/Variable1
重命名为abc/scope1/model/Variable1
。您可以使用^{} 和^{} 来实现您的目标:
另一个简单的脚本,用于重命名变量并以这种方式更改其作用域名称:
相关问题 更多 >
编程相关推荐