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"))