Всем может быть трудно понять и работать с повторяющимися нейронными сетями. Однако они не так уж и сложны, как кажется. 1006 * Вы также можете увидеть эту статью , в которой обобщаются концепции RNN.
Этот учебник в блоге keras может быть полезен для реализации RNN.
Наконец, чтобы понять слои LSTM, подумайте о них как о простых плотных слоях с units
в качестве размера слоя.
Особенность этих слоев заключается в том, как они работают, здесь возникают другие аргументы. Здесь я буду использовать только те, которые я использовал.
units: Size of the layer
Activation: Activation function to apply on the output of the layer
use_bias: Boolean, decides if to use a vector for bias or not
return_sequences: Boolean, if you have Many to One RNN set it to False, If Many to Many RNN set it to True
EDIT: это код конституциональной рекуррентной нейронной сети, которую я построил для классификации изображений. Надеюсь, это то, что вы ищете.
model = Sequential()
model.add(Input(shape=(IMG_HEIGHT, IMG_WIDTH, 3)))
model.add(Reshape(target_shape=(IMG_HEIGHT, IMG_WIDTH * 3)))
model.add(Conv1D(filters=64, kernel_size=3, padding="same", activation='relu',
input_shape=(IMG_HEIGHT, IMG_WIDTH * 3), data_format='channels_last'))
model.add(Conv1D(filters=64, kernel_size=3, padding="same", activation='relu'))
model.add(MaxPooling1D(pool_size=3))
model.add(Conv1D(filters=128, kernel_size=3, padding="same", activation='relu'))
model.add(Conv1D(filters=128, kernel_size=3, padding="same", activation='relu'))
model.add(LSTM(64, activation='relu'))
model.add(BatchNormalization())
model.add(Flatten())
model.add(Dense(4, activation='softmax'))
model.build(input_shape=(batch_size, IMG_HEIGHT, IMG_WIDTH, 3))
model.summary()
Надеюсь, это поможет.