我在带有Tensorflow CPU后端的VM Ubuntu机器上使用keras。
我正在弄乱 Keras 文本生成示例文件,我希望能够打印我当前用于编译模型的优化器函数:
optimizer = Adam(lr=0.001)
print(optimizer)
...
model.compile(loss='categorical_crossentropy', optimizer=optimizer)
打印为:
<keras.optimizers.Adam object at 0x7fdf2e406e48>
我希望将其打印为:
# either:
Adam(lr=0.001)
# or:
Adam
0.001
我解决这个问题的方法是这几段代码:
optimizer = Adam
learning_rate = 0.001
optimize_funct = optimizer(lr=learning_rate)
print(str(optimizer))
print(str(learning_rate))
...
model.compile(loss='categorical_crossentropy', optimizer=optimize_funct)
此操作运行正常,但打印不正确:
<class 'keras.optimizers.Adam'>
0.001
注意:我非常新手,可能需要对为什么这不起作用以及可能的解决方案进行基本解释。
您能提供的任何帮助将不胜感激。谢谢!
请尝试optimizer.__name__
:
print('{}(lr={})'.format(optimizer.__name__, learning_rate))