Я хочу обучить двоичный классификатор с использованием Keras, и мои данные обучения имеют форму (2000,2,128)
и метки формы (2000,)
как массивы Numpy.
Идея состоит в том, чтобы обучать так, чтобы вложения водин массив означает, что они либо одинаковые, либо разные, помечены соответственно 0 или 1.
Данные обучения выглядят следующим образом: [[[0 1 2 ....128][129.....256]][[1 2 3 ...128][9 9 3 5...]].....]
, а метки выглядят как [1 1 0 0 1 1 0 0..]
.
Воткод:
import keras
from keras.layers import Input, Dense
from keras.models import Model
frst_input = Input(shape=(128,), name='frst_input')
scnd_input = Input(shape=(128,),name='scnd_input')
x = keras.layers.concatenate([frst_input, scnd_input])
x = Dense(128, activation='relu')(x)
x=(Dense(1, activation='softmax'))(x)
model=Model(inputs=[frst_input, scnd_input], outputs=[x])
model.compile(optimizer='rmsprop', loss='binary_crossentropy',
loss_weights=[ 0.2],metrics=['accuracy'])
Я получаю следующую ошибку при выполнении этого кода:
ValueError: Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 2 array(s), but instead got the following list of 1 arrays: [array([[[ 0.07124118, -0.02316936, -0.12737238, ..., 0.15822273,
0.00129827, -0.02457245],
[ 0.15869428, -0.0570458 , -0.10459555, ..., 0.0968155 ,
0.0183982 , -0.077924...
Как я могу решить эту проблему?Правильный ли мой код для обучения классификатора с использованием двух входов для классификации?