Я хочу обучить модель Keras, где на входе находится вектор размером (20, 300)
. Но проблема в том, что мне нужно также снабдить модель фиксированным списком векторов, которые должны использоваться на каждом этапе обучения.
список векторов фиксирован для всех обучающих примеров ... так вот что я я пробовал.
def create_model(num_filters=64, embedding_dim=300, seq_len=20):
# input1 Shape (?,20,300)
input1 = Input(shape=(seq_len,embedding_dim,), dtype='float32') # Input1 taken from the model input
# input2 Shape (5,20,300)
input2=get_input2() # Input2: taken from outside the model
# CNN Encoding of Input 1
convs = []
filter_sizes = [1,2,3]
for fsz in filter_sizes:
x = Conv1D(num_filters, fsz, activation='relu',padding='same')(input1)
x = MaxPooling1D()(x)
convs.append(x)
output1 = Concatenate(axis=-1)(convs)
output1 = Flatten()(output1)
# CNN Encoding of Input 2
convs1 = []
filter_sizes = [1,2,3]
for fsz in filter_sizes:
x1 = Conv1D(num_filters, fsz, activation='relu',padding='same')(input2)
x1 = MaxPooling1D()(x1)
convs1.append(x1)
output2 = Concatenate(axis=-1)(convs1)
output2 = Flatten()(output2)
Однако эта реализация выдает ошибку значения.
"ValueError: Слой conv1d_60 был вызван с вводом, который не является символом c тензор. Полученный тип:. "
Как это можно сделать в Керасе?