在tensorflow中保存一些变量
save some variables in tensorflow
我正在尝试保存一些变量(权重和偏差)以备后用,但我检测到错误,我不知道我的步骤是否正确:
graph = tf.Graph()
with graph.as_default():
weights = {
'wc1_0': tf.Variable(tf.random_normal([patch_size_1, patch_size_1, num_channels, depth],stddev=0.1)),
'wc1_1': tf.Variable(tf.random_normal([patch_size_2, patch_size_2, depth, depth], stddev=0.1)),
......
}
biases = {
'bc1_0' : tf.Variable(tf.zeros([depth])),
'bc1_1' : tf.Variable(tf.constant(1.0, shape=[depth])),
.....
}
def model(data):
conv_1 = tf.nn.conv2d(data, wc1_0 , [1, 2, 2, 1], padding='SAME')
hidden_1 = tf.nn.relu(conv_1 + bc1_0)
pool_1 = tf.nn.max_pool(hidden_1,ksize = [1,5,5,1], strides= [1,2,2,1],padding ='SAME' )
.......
.......
weights_saver = tf.train.Saver(var_list=weights)
biases_saver = tf.train.Saver(var_list=biases)
with tf.Session(graph=graph) as sess:
sess.run()
for loop....
......
save_path_weights = weights_saver.save(sess, "my_path")
save_path_biases = biases_saver.save(sess, "my_path")
当我 运行 代码时,我得到这个错误:
conv_1 = tf.nn.conv2d(data, wc1_0 , [1, 2, 2, 1], padding='SAME')
NameError: global name 'wc1_0' is not defined
如何在 conv_1 中分配变量?
您定义了两个字典:1 个用于权重,1 个用于偏差。
您已经用 Tensorflow 变量对象填充了字典。那么,为什么不使用它们呢?
conv_1 = tf.nn.conv2d(data, weights['wc1_0'] , [1, 2, 2, 1], padding='SAME')
hidden_1 = tf.nn.relu(conv_1 + biases['bc1_0'])
pool_1 = tf.nn.max_pool(hidden_1,ksize = [1,5,5,1], strides= [1,2,2,1],padding ='SAME' )
我正在尝试保存一些变量(权重和偏差)以备后用,但我检测到错误,我不知道我的步骤是否正确:
graph = tf.Graph()
with graph.as_default():
weights = {
'wc1_0': tf.Variable(tf.random_normal([patch_size_1, patch_size_1, num_channels, depth],stddev=0.1)),
'wc1_1': tf.Variable(tf.random_normal([patch_size_2, patch_size_2, depth, depth], stddev=0.1)),
......
}
biases = {
'bc1_0' : tf.Variable(tf.zeros([depth])),
'bc1_1' : tf.Variable(tf.constant(1.0, shape=[depth])),
.....
}
def model(data):
conv_1 = tf.nn.conv2d(data, wc1_0 , [1, 2, 2, 1], padding='SAME')
hidden_1 = tf.nn.relu(conv_1 + bc1_0)
pool_1 = tf.nn.max_pool(hidden_1,ksize = [1,5,5,1], strides= [1,2,2,1],padding ='SAME' )
.......
.......
weights_saver = tf.train.Saver(var_list=weights)
biases_saver = tf.train.Saver(var_list=biases)
with tf.Session(graph=graph) as sess:
sess.run()
for loop....
......
save_path_weights = weights_saver.save(sess, "my_path")
save_path_biases = biases_saver.save(sess, "my_path")
当我 运行 代码时,我得到这个错误:
conv_1 = tf.nn.conv2d(data, wc1_0 , [1, 2, 2, 1], padding='SAME')
NameError: global name 'wc1_0' is not defined
如何在 conv_1 中分配变量?
您定义了两个字典:1 个用于权重,1 个用于偏差。 您已经用 Tensorflow 变量对象填充了字典。那么,为什么不使用它们呢?
conv_1 = tf.nn.conv2d(data, weights['wc1_0'] , [1, 2, 2, 1], padding='SAME')
hidden_1 = tf.nn.relu(conv_1 + biases['bc1_0'])
pool_1 = tf.nn.max_pool(hidden_1,ksize = [1,5,5,1], strides= [1,2,2,1],padding ='SAME' )