#python #numpy #tensorflow #keras #data-fitting
Вопрос:
Я использую tenserflow для построения модели
inputs1 = Input(shape=(2048,))
fe1 = Dropout(0.5)(inputs1)
fe2 = Dense(256, activation='relu')(fe1)
inputs2 = Input(shape=(max_length,))
se1 = Embedding(vocab_size, embedding_dim, mask_zero=True)(inputs2)
se2 = Dropout(0.5)(se1)
se3 = LSTM(256)(se2)
decoder1 =tf.keras.layers.Add()([fe2, se3])
decoder2 = Dense(256, activation='relu')(decoder1)
outputs = Dense(vocab_size, activation='softmax')(decoder2)
model = Model(inputs=[inputs1, inputs2], outputs=outputs)
Затем я составляю его
model.compile(loss='categorical_crossentropy', optimizer='adam')
тогда я использую подгонку
for i in range(epochs):
generator = data_generator(train_descriptions, train_features, wordtoix, max_length, number_pics_per_bath)
model.fit_generator(generator, epochs=1, steps_per_epoch=steps, verbose=1)
Ошибка, которую я получаю, заключается в следующем :
C:...../Anaconda3libsite-packagestensorflow_corepythonkerasenginetraining_utils.py:513 <listcomp>
data = [np.asarray(d) for d in data]
C:.....Anaconda3libsite-packagesnumpycore_asarray.py:83 asarray
C:....Anaconda3libsite-packagestensorflow_corepythonframeworkops.py:728 __array__
" array.".format(self.name))
NotImplementedError: Cannot convert a symbolic Tensor (args_2:0) to a numpy array.
Я не понимаю, в чем проблема . Я зашел в каталог, где произошла ошибка, и изменил np.asarray(d) для d в данных на K. asarray(d) для d в данных, как я видел в некотором решении, связанном с несовместимостью между Keras и numpy. Я также попытался обновить, а затем понизить эти 2 библиотеки. Это не сработало!
Может кто-нибудь, пожалуйста, помочь мне в этом?
Комментарии:
1. Опишите для нас природу
symbolic Tensor
А. Это звучит «виртуально», «символически», не совсем так. Массив должен содержать действительные числа.2. Эта проблема, вероятно, связана с совместимостью версий Numpy или Python. Tensorflow не поддерживает Python 3.9. Убедитесь, что установлен python >3.9. Спасибо!