Xây RNN bằng lớp Model của Keras

Đây là phần hiện thực của em cho RNN sử dụng keras.Model:

def buildRNN(hidden_state_size, input_size, L=2, final_layers=None):    
    inputs = [None] * (L + 1)
    # h_0 = zero vector
    inputs[0] = tf.keras.layers.Input(shape=(hidden_state_size,), name='h_0')    
    last_output_layer = inputs[0]
    feed_back_layer = tf.keras.layers.Dense(
            hidden_state_size,
            activation=tf.keras.activations.sigmoid, name=f'feedback')
    for i in range(1, L + 1):
        input_layer = tf.keras.layers.Input(shape=(input_size,), name=f'i_{i}')
        inputs[i] = input_layer
        concat_layer = tf.keras.layers.Concatenate()([input_layer, last_output_layer])
        last_output_layer = feed_back_layer(concat_layer)
    for layer in final_layers:
        last_output_layer = layer(last_output_layer)
    return tf.keras.Model(inputs=inputs, outputs=last_output_layer)   

Nó bị tràn stack không biết lý do ở đâu :sweat_smile:

Bạn đăng error message lên đây.

Có vẻ code của bạn bị đệ quy quá sâu.

1 Like

Được rồi ạ. Lúc fit, em set nhầm tham số hidden_state_size thành size của tệp dữ liệu train nên nó đệ quy nhiều lần. :stuck_out_tongue:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?