TensorFlow:按名称访问变量的内容
TensorFlow: Access Contents of a Variable By Name
我有以下情况:
我已经构建、训练并保存了我的网络。现在,我正在尝试恢复网络并可视化权重矩阵。
我知道变量的所有名称,但我没有分配给变量的 python 标记以传递给会话进行评估。如何检索变量中的数据?
这是我的代码情况:
dataset_params = nn_params.mnist_dataset_params
design = nn_designs.mnist_net_A_design
## Build Housing Object
mnist_nn = nn_class.CNN(**dataset_params)
mnist_nn.build_net(design['design'])
mnist_nn.__setattr__('saved_path',saved_model)
mnist_nn_epoch_file = saved_model+'_epochs_completed.txt'
mnist_nn.__setattr__('epoch_file',mnist_nn_epoch_file)
# evaluate weight variables
session = tf.Session()
saver = tf.train.Saver()
session.run(tf.initialize_all_variables())
saver.restore(session,saved_model)
session.close()
为了提取权重,我应该将什么传递给会话? (权重名称示例为:'conv_w_1')?
您可以使用 tf.get_collection()
查找方法来获取所需的变量:
weight_var = tf.get_collection(tf.GraphKeys.VARIABLES, "conv_w_1")[0]
weight_var_value = session.run(weight_var)
或者你可以使用函数 tf.get_default_graph().get_tensor_by_name 得到结果:
valua_of_conv_w_1 = session.run(tf.get_default_graph().get_tensor_by_name("conv_w_1:0"))
我有以下情况:
我已经构建、训练并保存了我的网络。现在,我正在尝试恢复网络并可视化权重矩阵。
我知道变量的所有名称,但我没有分配给变量的 python 标记以传递给会话进行评估。如何检索变量中的数据?
这是我的代码情况:
dataset_params = nn_params.mnist_dataset_params
design = nn_designs.mnist_net_A_design
## Build Housing Object
mnist_nn = nn_class.CNN(**dataset_params)
mnist_nn.build_net(design['design'])
mnist_nn.__setattr__('saved_path',saved_model)
mnist_nn_epoch_file = saved_model+'_epochs_completed.txt'
mnist_nn.__setattr__('epoch_file',mnist_nn_epoch_file)
# evaluate weight variables
session = tf.Session()
saver = tf.train.Saver()
session.run(tf.initialize_all_variables())
saver.restore(session,saved_model)
session.close()
为了提取权重,我应该将什么传递给会话? (权重名称示例为:'conv_w_1')?
您可以使用 tf.get_collection()
查找方法来获取所需的变量:
weight_var = tf.get_collection(tf.GraphKeys.VARIABLES, "conv_w_1")[0]
weight_var_value = session.run(weight_var)
或者你可以使用函数 tf.get_default_graph().get_tensor_by_name 得到结果:
valua_of_conv_w_1 = session.run(tf.get_default_graph().get_tensor_by_name("conv_w_1:0"))