Conv 1d 及其输入
Conv 1d and its input
我有一个形状为 (273, 168) 的 numpy 数组,所以有 273 个样本,每个样本有 168 个观察值。
我想要输出 273 数组,包含 24 个观测值。
为什么我的代码给我一个模糊差异的问题?
x = np.random.randint(0,1,(273,168))
y = np.random.randint(0,1,(273,24))
model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv1D(7, activation='relu', kernel_size=(3), input_shape=(168,273)))
model.add(tf.keras.layers.Dropout(0.2))
model.add(tf.keras.layers.Dense(24))
model.compile(loss=tf.losses.MeanSquaredError(),
optimizer=tf.optimizers.Adam(),
metrics=[tf.metrics.MeanAbsoluteError()])
model.fit(x,y))
model.predcit(x[42])
谁能帮帮我?
如果你检查你得到的错误信息,你可以看到所需的维数是 3,你传递的只是 2([=20=],n_features),你需要重塑您使用 .reshape(n_samples, 1, n_features)
的数据您的 input_shape
也不正确。
最后,您需要设置padding='same'
,否则您的输入数据将超出维度。 (您可以尝试 运行 而不将 padding 设置为相同,看看会出现什么错误)
此代码有效:
x = np.random.randint(0,1,(273,168)).reshape(273, 1, 168)
y = np.random.randint(0,1,(273,24)).reshape(273, 1, 24)
model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv1D(7, activation='relu', kernel_size=(3), padding='same', input_shape=(1,168)))
model.add(tf.keras.layers.Dropout(0.2))
model.add(tf.keras.layers.Dense(24))
model.compile(loss=tf.losses.MeanSquaredError(),
optimizer=tf.optimizers.Adam(),
metrics=[tf.metrics.MeanAbsoluteError()])
model.fit(x,y)
我有一个形状为 (273, 168) 的 numpy 数组,所以有 273 个样本,每个样本有 168 个观察值。
我想要输出 273 数组,包含 24 个观测值。
为什么我的代码给我一个模糊差异的问题?
x = np.random.randint(0,1,(273,168))
y = np.random.randint(0,1,(273,24))
model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv1D(7, activation='relu', kernel_size=(3), input_shape=(168,273)))
model.add(tf.keras.layers.Dropout(0.2))
model.add(tf.keras.layers.Dense(24))
model.compile(loss=tf.losses.MeanSquaredError(),
optimizer=tf.optimizers.Adam(),
metrics=[tf.metrics.MeanAbsoluteError()])
model.fit(x,y))
model.predcit(x[42])
谁能帮帮我?
如果你检查你得到的错误信息,你可以看到所需的维数是 3,你传递的只是 2([=20=],n_features),你需要重塑您使用 .reshape(n_samples, 1, n_features)
的数据您的 input_shape
也不正确。
最后,您需要设置padding='same'
,否则您的输入数据将超出维度。 (您可以尝试 运行 而不将 padding 设置为相同,看看会出现什么错误)
此代码有效:
x = np.random.randint(0,1,(273,168)).reshape(273, 1, 168)
y = np.random.randint(0,1,(273,24)).reshape(273, 1, 24)
model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv1D(7, activation='relu', kernel_size=(3), padding='same', input_shape=(1,168)))
model.add(tf.keras.layers.Dropout(0.2))
model.add(tf.keras.layers.Dense(24))
model.compile(loss=tf.losses.MeanSquaredError(),
optimizer=tf.optimizers.Adam(),
metrics=[tf.metrics.MeanAbsoluteError()])
model.fit(x,y)