Input_shape ของ Conv1D เลเยอร์ Keras

0

คำถาม

ฉันกำลังพยายามทำซีเอ็นเอ็นเลยรุ่นสำหรับไบนารี(ภาษาเครื่อง)การแบ่งประเภทของคนที่ไม่ใช่รูปภาพวันที่. ของรุ่น/รหัสกำลังแล้วร่วมที่ดีมากผล(accuracies พสูง)แต่ฉันไม่สามารถเข้าใจ input_shape พารามิเตอร์สำหรับ 1 เลเยอร์ของ Conv1D.

รูปร่างของ X หรือข้อมูลเข้า(อยู่ที่นี่ x_train_df)คือ(2000,28). มันมี 28 มีคุณสมบัติและ 2000 ตัวอย่าง และรูปร่างของ Y หรือป้ายต่างๆ(ที่นี่ y_train_df)คือ(2000,1).

model = Sequential()
model.add(Conv1D(filters = 64, kernel_size = 3, activation = 'relu', input_shape = (x_train_df.shape[1], 1)))
model.add(Conv1D(filters = 64, kernel_size = 3, activation = 'relu'))
model.add(MaxPooling1D(pool_size = 2))
model.add(Flatten())
model.add(Dense(100, activation = 'relu'))
model.add(Dense(1, activation = 'sigmoid'))

optimzr = Adam(learning_rate=0.005)
model.compile(loss='binary_crossentropy', optimizer=optimzr,  metrics=[[tf.keras.metrics.AUC(curve="ROC", name = 'auc')], [tf.keras.metrics.AUC(curve="PR", name = 'pr')]])

# running the fitting
model.fit(x_train_df, y_train_df, epochs = 2, batch_size = 32, validation_data = (x_val_df, y_val_df), verbose = 2)

ฉันต้องได้รับ input_shape เป็(28,1)(ใช้อ้างอิงจาก นี้ถามคำถาม).

แต่ใน Conv1D เลเยอร์เอกสารคู่มือ มันถูกเขียนนั้น

ตอนที่ใช้นี่เลเยอร์เป็นคนแรกเลเยอร์อยู่เป็นนางแบบให้เป็น input_shape เถียงกัน(tuple ของ integers หรือไม่,e.g.(10,128)สำหรับ sequences ของ 10 vectors ของ 128 มิติ vectors.

สิ่งที่ฉันเข้าใจจากนี่คือมิติของ input_shape ควรจะเป็(2000,1)เป็นเหมือนที่ผม 2000 หนึ่งมิติ vectors. แต่ให้มันเป็ input_shape แสดงข้อผิดพลาดเกิดขึ้นระหว่างเป็น

ValueError:ค่า 0 ของเลเยอร์"sequential_25"คือทำงานเข้ากันไม่ด้ เลเยอร์:คาดหวังว่ารูปร่าง=(ไม่มีใครปี 2000,1),เจอรูปร่าง=(ไม่,28)

ดังนั้นฉันขอถามคำถามคือสิ่งที่ควรจะเป็นคนที่ถูกต้อง input_shape?

1

คำตอบที่ดีที่สุด

0

ขอตรวจสอบว่า"Conv1D"ต้องใช้ข้อมูล

>>> # The inputs are 128-length vectors with 10 timesteps, and the batch size
>>> # is 4.
>>> input_shape = (4, 10, 128)
>>> x = tf.random.normal(input_shape)
>>> y = tf.keras.layers.Conv1D(
... 32, 3, activation='relu',input_shape=input_shape[1:])(x)
>>> print(y.shape)
    (4, 8, 32)

3+D tensor กับรูปร่าง:batch_shape+(ขั้นตอน input_dim)

เท่าที่เห็นอยู่เหนือมันมี 128 คุณสมบัติต่างๆ,10 timesteps และการประมวลผลกลุ่มภาพขนาดของ 4 ดังนั้น,Conv1D ต้องใช้นำเข้าข้อมูลที่(batch_size,timesteps,คุณสมบัติต่างๆ). มันต้อง 3 มิตินำข้อมูลเข้าได้ เอาเป็นว่าคุณเลือกการประมวลผลกลุ่มภาพขนาดที่ 1 สำหรับคดีของคุณ คุณต้องให้ข้อมูลเหมือน(1,2000,28).

2021-11-22 08:00:37

ให้นำเข้าเป็(1,2000,28)ทำให้เกิดข้อผิดพลาดเหมื ValueError: logits and labels must have the same shape, received ((None, 1) vs (None, 2000)). ดังนั้นฉันเปลี่ยนรูปร่างได้ลอกเลียนต้องเป็น(2000,28,1)สำหรับ x_train_df และ(2000,1,1)สำหรับ y_train_df ที่แสดง อยู่นี้ และมันได้ผล ฉันสับสนเกี่ยวกับเรื่องนี้ มันจะช่วยได้มากถ้าคุณสามารถอธิบายวิธีที่จะแก้ไขรหัสในคำถาม
Badal

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่