python - 如何在eager执行模式下获取keras模型的可训练变量?

标签 python tensorflow keras save tensor

我使用的是tensorflow 1.15.0。

我使用 tf.keras 构建自己的模型。但是当我尝试使用 Saver 保存模型时:

saver = tf.compat.v1.train.Saver(var_list=tf.trainable_variables())

我发现tf.trainable_variables()急切执行模式下总是返回空列表。

这是一个简单的代码示例:

import numpy as np
import tensorflow as tf
from tensorflow import keras

tf.enable_eager_execution()

def create_model():
    inlayer = keras.Input(shape=(10), name="input")
    outlayer = keras.layers.Dense(1, activation='relu')(inlayer)
    
    model = keras.Model(
        inputs=inlayer,
        outputs=outlayer,
    )
    
    optimizer = tf.keras.optimizers.Adam(0.0001)
           
    model.compile(optimizer=optimizer,
                  loss='mae') 
    return model

model = create_model()

history = model.fit(np.zeros((1, 10)), np.zeros((1, 10)), epochs=1)

tf.trainable_variables()

输出为[]

有人可以告诉我为什么会发生这种情况以及如何获得 keras 模型的 trainable_variables 吗?

谢谢。

最佳答案

您应该使用model.trainable_variables

关于python - 如何在eager执行模式下获取keras模型的可训练变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65196566/

相关文章:

python - 我无法使用 Exchangelib 读取交换日历

python - 在 vim 中突出显示不匹配的括号

amazon-ec2 - 最低要求的Cuda功能为3.5

deep-learning - 在 Keras 中使用带小批量的有状态 LSTM 和可变时间步长的输入?

python - Pandas mul 密集与稀疏

python - 缓冲区 dtype 不匹配,预期为 'SIZE_t' 但得到 'long long'

python - 运行基本 tensorflow 示例时出错

python - BasicRNNCell 中的内部变量

r - Keras 模型中训练和验证样本较小时如何衡量过拟合

python - 训练价格预测模型