Я впервые использую Keras для построения Conv Net.Мои слои выглядят следующим образом:
layers = [
Conv2D(8,kernel_size=(4,4),padding='same',input_shape=( 200, 180,3),kernel_initializer="glorot_normal",data_format="channels_first"),
Activation("relu"),
MaxPooling2D(pool_size=(8,8),padding='same',data_format='channels_first'),
Conv2D(16,(2,2),padding='same',kernel_initializer="glorot_normal"),
Activation("relu"),
MaxPooling2D(pool_size=(4,4),padding='same',data_format='channels_first'),
Conv2D(4,(3,3),padding='same',kernel_initializer="glorot_normal"),
Activation("relu"),
MaxPooling2D(pool_size=(2,2),padding='same',data_format='channels_first'),
Flatten(),
Dense(2,input_shape=(48,)),
Softmax(axis=-1)
]
#Edit, here is the part for compiling the model and fitting it
model = Sequential(layers)
model.compile(optimizer="adam",loss="sparse_categorical_crossentropy"
metrics=["accuracy"])
trainHistory = model.fit(x=X_train,y=Y_train,batch_size=3,epochs=1000)
Мой массив меток имеет форму (,2)
.Но когда я пытаюсь использовать подгонку на модели, она выдает ошибку, которая softmax_1
должна иметь форму (1,)
.Но я четко упомянул единицы измерения Dense
как 2, и softmax возвращает выходные данные того же измерения, что и входные данные.
Так откуда же взялась 1?Я попытался использовать фиктивный массив меток 1 измерения, и он работает.Так что я делаю не так?Как использовать двухмерный массив, который у меня есть?