У меня есть список матриц с формой (2,30000), мне нужно передать эту информацию в качестве входных данных модели глубокого обучения с тензорным потоком с использованием конверсионного слоя, но когда я пытался передать это для обучения все время, я получаю
return ops.EagerTensor(value, ctx.device_name, dtype)
ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray).
У меня есть список массива numpy в виде серии pandas
0 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...
1 [[0.036600337822677166, 0.018300168911338583, ...
2 [[0.8671148170073495, 0.47065322955211747, 0.0...
3 [[0.024680190751413082, 0.007051483071832309, ...
4 [[0.0688791198957804, 0.0, 0.0, 0.0, 0.0229597...
...
549 [[0.024182541670333724, 0.0, 0.0, 0.0, 0.0, 0....
550 [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,...
Name: tfidf, Length: 554, dtype: object
вот моя модель
def getmodel(num_words = 20000):
x_input = keras.Input( shape=(2,30000),name="article1") # Variable-length sequence of ints
conv1d_1= layers.Conv1D(64, 2, input_shape=(2,30000), activation='relu')(x_input)
global_1 = layers.GlobalMaxPooling1D()(conv1d_1)
dense1 = layers.Dense(1024, name="dense1", activation="relu", )(global_1)
encoder_conv_dense2 = layers.Dense(256, name="40_dense", activation="relu", )(dense1)
encoder_conv_dense3 = layers.Dense(1, name="similar_result", activation="relu", )(encoder_conv_dense2)
model = keras.Model(
inputs=x_input,
outputs=[encoder_conv_dense3],
)
keras.utils.plot_model(model, "my_paper_model.png", show_shapes=True)
return model
а вот как я пытался передать информацию
def compile_model(model, optimizer, loss, loss_weight):
model.compile(
optimizer=optimizer,
loss=loss,
loss_weights=loss_weight,
metrics=[tf.keras.metrics.Accuracy()]
)
return model
def train(df):
callback = tf.keras.callbacks.EarlyStopping(monitor='accuracy', patience=40)
callback2 = tf.keras.callbacks.EarlyStopping(monitor='loss', patience=20)
model = getmodel()
model = compile_model(model, keras.optimizers.Adam(), keras.losses.BinaryCrossentropy(), 0.05)
history = model.fit(
{"article1":df['tfidf']},
{"similar_result": df['is_similar']},
validation_split=0.3,
epochs=400,
batch_size=32,
verbose=1,
callbacks=[callback, callback2, ],
)
Я не знаю, как передать мою пустую матрицу из 2 строк и 30 000 столбцов в качестве входных данных для keras и использовать ее с конверсионным слоем.
Надеюсь, кто-нибудь может мне помочь