【问题标题】:Keras LSTM from for loop, using functional API with custom number of layers来自 for 循环的 Keras LSTM,使用具有自定义层数的功能 API
【发布时间】:2019-06-11 23:56:44
【问题描述】:

我正在尝试通过 keras 功能 API 构建一个网络,该 API 提供两个列表,其中包含 LSTM 层和 FC(密集)层的单元数。我想分析 20 个连续的段(批次),每个段包含 fs 个时间步长和 2 个值(每个时间步长 2 个特征)。这是我的代码:

Rec = [4,4,4]  
FC = [8,4,2,1]    
def keras_LSTM(Rec,FC,fs, n_witness, lr=0.04, optimizer='Adam'):
    model_LSTM = Input(batch_shape=(20,fs,n_witness))
    return_state_bool=True
    for i in range(shape(Rec)[0]):
        nRec = Rec[i]
        if i == shape(Rec)[0]-1:
            return_state_bool=False
        model_LSTM = LSTM(nRec, return_sequences=True,return_state=return_state_bool,
                     stateful=True, input_shape=(None,n_witness),            
                     name='LSTM'+str(i))(model_LSTM)
    for j in range(shape(FC)[0]):
        nFC = FC[j]
        model_LSTM = Dense(nFC)(model_LSTM)
        model_LSTM = LeakyReLU(alpha=0.01)(model_LSTM)
    nFC_final = 1
    model_LSTM = Dense(nFC_final)(model_LSTM)
    predictions = LeakyReLU(alpha=0.01)(model_LSTM)

    full_model_LSTM = Model(inputs=model_LSTM, outputs=predictions)
    model_LSTM.compile(optimizer=keras.optimizers.Adam(lr=lr, beta_1=0.9, beta_2=0.999,
                    epsilon=1e-8, decay=0.066667, amsgrad=False), loss='mean_squared_error')
    return full_model_LSTM

model_new = keras_LSTM(Rec, FC, fs=fs, n_witness=n_wit)
model_new.summary()

编译时出现以下错误:

ValueError: Graph disconnected: cannot get value for tensor Tensor("input_1:0", shape=(20, 2048, 2), dtype=float32) at layer "input_1".访问以下之前的层没有问题:[]

我其实不太明白,但怀疑它可能与输入有关?

【问题讨论】:

    标签: machine-learning keras lstm keras-layer


    【解决方案1】:

    我通过修改代码的第 4 行解决了这个问题,如下所示:

    x = model_LSTM = Input(batch_shape=(20,fs,n_witness))
    

    连同第 21 行,如下:

    full_model_LSTM = Model(inputs=x, outputs=predictions)
    

    【讨论】:

      猜你喜欢
      • 2021-03-12
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      • 2020-03-27
      • 1970-01-01
      相关资源
      最近更新 更多