ADAM优化器如何在keras中输出v_t的特定值?

时间:2018-04-03 12:30:42

标签: python optimization tensorflow keras adam

我想查看计算v_t的ADAM算法的每次迭代的结果,因此我将以下代码添加到keras \ optimizers.py文件中的Adam类中:

diff -y --suppress-common-lines file1 file2

我希望获得此形状中的每个数值,类似于矩阵的形式。 但下面的输出不是我的预期:

sess = tf.Session() init = tf.global_variables_initializer() sess.run(init)

v_t: Tensor("training/Adam/add_2:0", shape=(8, 512), dtype=float32)

这行代码是Adam类本身的一部分,下一行添加了自己的代码:

v_t: Tensor("training/Adam/add_5:0", shape=(128, 512), dtype=float32)

我做了以下尝试,但会报告错误如下: InvalidArgumentError(参见上面的回溯):Shape [-1,1,8]具有负尺寸      [[节点:lstm_1_input = Placeholderdtype = DT_FLOAT,shape = [?,1,8],_ device =“/ job:localhost / replica:0 / task:0 / cpu:0”]]

这是我的模特:

v_t = (self.beta_2 * v) + (1. - self.beta_2) * K.square(g) print('v_t:',v_t)# This is my added code

model = Sequential()

model.add(LSTM(128, input_shape=(train_X.shape[1], train_X.shape[2])))

model.add(Dense(1))

我只想输出这个形状的每个值。

1 个答案:

答案 0 :(得分:0)

如果您的后端是Tensorflow,您可以使用tf.Print()打印张量值。