如何显示字典的值?

时间:2018-11-16 00:22:59

标签: python dictionary tensorflow neural-network

我正在尝试为我的ANN实现创建每层重量的字典。

问题是,尽管我创建的字典以字符串作为键,而张量作为值,但是我不知道如何在调用init_weight方法时显示它们

def init_weights(topology):
#topology: dimensions of the network

for i in range(1,len(topology)):
parameters['W' + str(i)] = tf.Variable(tf.random_normal([topology[i-1],topology[i]]))

该方法的输出显示以下内容:

{'W1': <tf.Variable 'Variable_1:0' shape=(2, 5) dtype=float32_ref>,
 'W2': <tf.Variable 'Variable_3:0' shape=(5, 5) dtype=float32_ref>,
 'W3': <tf.Variable 'Variable_5:0' shape=(5, 5) dtype=float32_ref>,
 'W4': <tf.Variable 'Variable_7:0' shape=(5, 10) dtype=float32_ref>}

如何打印权重矩阵?

1 个答案:

答案 0 :(得分:0)

Tensorflow是一个静态类型的框架(猜测这在2.0中正在发生变化)。意思是,您首先构建一个静态图,并且该图仅在使用Tf.Session()运行时才具有值。现在回答您的问题。有两种获取所需内容的方法。

  1. 在脚本的开头添加tf.enable_eager_execution()。这将创建一个动态图(类似于Pytorch)。相同的代码无需任何额外的添加即可满足您的需求。

  2. 将所有内容包装到tf.Session()中并运行它。您将获得权重矩阵