簡體   English   中英

CNN 架構問題

[英]Issue With CNN architecture

我正在嘗試實現 CNN 架構,但是 output 的形狀存在問題。集合的形狀如下:

x_train.shape, y_train.shape, x_test.shape, y_test.shape
((1203, 162, 1), (1203, 7), (402, 162, 1), (402, 7))

架構的設置如下:

input_x = tf.keras.layers.Input(shape = (x_train.shape[1],1))
conv_1 = tf.keras.layers.Conv1D(filters=16,kernel_size=3,padding="same",activation="relu")(input_x)
pool_1 = tf.keras.layers.MaxPooling1D(2)(conv_1)
conv_2 = tf.keras.layers.Conv1D(filters=32,kernel_size=3,padding="same",activation="relu")(pool_1)
pool_2  = tf.keras.layers.MaxPooling1D(2)(conv_2)

flatten = tf.keras.layers.Flatten()(pool_2)
dense = tf.keras.layers.Dense(512, activation="relu")(flatten)
fb = tf.keras.layers.Dropout(0.4)(dense)
fb = tf.keras.layers.Dense(512, activation="relu")(fb)
fb = tf.keras.layers.Dropout(0.4)(fb)

output = tf.keras.layers.Dense(8, activation="softmax")(fb)
model_branching_summed = tf.keras.models.Model(inputs=input_x, outputs=output)
model_branching_summed.summary()
model_branching_summed.compile(optimizer=SGD(learning_rate=0.01 , momentum=0.8), loss='categorical_crossentropy', metrics= ['accuracy'])

history=model_branching_summed.fit(x_train, y_train, batch_size=128, epochs=100, validation_data=(x_test, y_test), 回調=[rlrp])

但是當我運行 model 時,它給我以下錯誤:

ValueError Traceback(最后一次調用)Cell In[192],第 5 行 1 rlrp = ReduceLROnPlateau(monitor='loss', factor=0.4, verbose=0, patience=2,min_lr=0.0001) 2 #(min_lr=0.000001) ----> 5 history=model_branching_summed.fit(x_train, y_train, batch_size=128, epochs=100, validation_data=(x_test, y_test), 回調=[rlrp])

ValueError:形狀(無,7)和(無,8)不兼容

有人可以幫我知道錯誤在哪里嗎?

您看到有一個形狀為 (None, 8) 的 output 層,但您正在嘗試計算形狀為 (None, 7) 的y_train矩陣的損失。

嘗試更改此行:

output = tf.keras.layers.Dense(8, activation="softmax")(fb)

output = tf.keras.layers.Dense(7, activation="softmax")(fb)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM