Input_shape 의 Conv1D 층 Keras

0

질문

내가 만들려고 노력 CNN 모델 이진 분류에 대한의 이미지가 아닌합니다. 내 모델/코드 작업 및 생산하는 아주 좋은 결과(정확성이 높은)하지만 난을 이해할 수 없 input_shape 매개 변수를 위해 1 층 Conv1D.

모양의 X 또는 입력(기 x_train_df이)(2000,28). 그것은 28 특징 및 2000samples. 및 모양의 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 인수(튜플의 정수 없음 또는,예를 들어,(10,128) 시퀀스의 10 벡터의 128-차원 벡터.

내가 이해서는 이 차원의 input_shape 해야(2000,1)로 나아가 2000 년 한 차원해주어야 합니다. 하지만 주는 이로 input_shape 오류를 보여줍,

ValueError:입력 0 층의"sequential_25"지 층:형상을 예상=(없음,2000,1),발 모양=(없음,28)

그래서 제 질문은 무엇을 해야 올바른 input_shape?

1

최고의 응답

0

Let's 는 방법을 확인"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 텐서와 모양:batch_shape+(단,input_dim)

위에서 보는 바와 같이,거기에는 128 개의 기능,10timesteps 및 배치의 크기가 4. 그래서,Conv1D 입력으로(batch_size,timesteps,능). 그것은 3D 입력합니다. 당신이 선택 배치 크기는 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ý
..................................................................................................................