Я пытаюсь ответить на эту архитектуру с помощью pavithrasv:
model = keras.Sequential(
[
layers.Input(shape=(x_train.shape[1], x_train.shape[2])),
layers.Conv1D(
filters=32, kernel_size=7, padding="same", strides=2, activation="relu"
),
layers.Dropout(rate=0.2),
layers.Conv1D(
filters=16, kernel_size=7, padding="same", strides=2, activation="relu"
),
layers.Conv1DTranspose(
filters=16, kernel_size=7, padding="same", strides=2, activation="relu"
),
layers.Dropout(rate=0.2),
layers.Conv1DTranspose(
filters=32, kernel_size=7, padding="same", strides=2, activation="relu"
),
layers.Conv1DTranspose(filters=1, kernel_size=7, padding="same"),
]
)
model.compile(optimizer=keras.optimizers.Adam(learning_rate=0.001), loss="mse")
model.summary()
print("Training input shape: ", x_train.shape)
Training input shape: (3744, 288, 1)
Чтобы иметь возможность запустить пример, написанный здесь: https://keras.io/examples/timeseries/timeseries_anomaly_detection/
Я использовал:
class Conv1DTranspose(tf.keras.layers.Layer):
def __init__(self, filters, kernel_size, strides=1, padding='valid'):
super().__init__()
self.conv2dtranspose = tf.keras.layers.Conv2DTranspose(
filters, (kernel_size, 1), (strides, 1), padding
)
def call(self, x):
x = tf.expand_dims(x, axis=2)
x = self.conv2dtranspose(x)
x = tf.squeeze(x, axis=2)
return x
Я могу следить за ноутбуком до конца, но я действительно хочу изменить эту архитектуру, сделав ее симметричной c и с привязанным весом (). Кто-нибудь может мне помочь? А кто-нибудь знает, почему параметры для кодирования и декодирования не равны, даже если нейтроны равны?