我正在尝试为我的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>}
如何打印权重矩阵?
答案 0 :(得分:0)
Tensorflow是一个静态类型的框架(猜测这在2.0中正在发生变化)。意思是,您首先构建一个静态图,并且该图仅在使用Tf.Session()运行时才具有值。现在回答您的问题。有两种获取所需内容的方法。
在脚本的开头添加tf.enable_eager_execution()
。这将创建一个动态图(类似于Pytorch)。相同的代码无需任何额外的添加即可满足您的需求。
将所有内容包装到tf.Session()
中并运行它。您将获得权重矩阵