내가 만들려고 노력 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
?
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
으로 다음과 같 이 그 일했다. 나는에 대한 혼란이다. 그것은 매우 도움이 될 것입니다 당신할 수 있는 방법을 설명하는 코드를 수정 문제입니다.