首页 > 解决方案 > 在拟合模型之外调用层结构时,参数值是否会更新?

问题描述

我正在阅读代码https://github.com/zhang-guodong/Deep-Learning-Specialization/blob/main/Sequence%20Models/Week%201/Improvise_a_Jazz_Solo_with_an_LSTM_Network_v4.ipynb他们将层定义为

n_values = 90 # number of music values
reshaper = Reshape((1, n_values))                  # Used in Step 2.B of djmodel(), below
LSTM_cell = LSTM(n_a, return_state = True)         # Used in Step 2.C
densor = Dense(n_values, activation='softmax')     # Used in Step 2.D

然后在 djmodel 函数中使用这些层对 RNN 进行建模。

然后他们定义modelmodel = djmodel(Tx=30, LSTM_cell=LSTM_cell, densor=densor, reshaper=reshaper)

model并训练

history = model.fit([X, a0, c0], list(Y), epochs=100, verbose = 0)

在模型推理的步骤中,我对使用 LSTM_cell 和 densor 调用训练好的模型参数感到困惑。在 music_inference_model 函数中表示如下:

LSTM_cell -- the trained "LSTM_cell" from model(), Keras layer object
    densor -- the trained "densor" from model(), Keras layer object

并通过以下方式构建结构

inference_model = music_inference_model(LSTM_cell, densor, Ty = 50)

LSTM_cell 和 densor 中的参数在调用 model.fit 时是否已更新?参数是否更新,因为在 tensorflow 2 中默认启用了急切执行?有没有我可以了解比较 tensorflow 版本 1 和 2 的变量范围和执行的参考?

标签: tensorflowvariableskerasreusability

解决方案


推荐阅读