Я пытаюсь преобразовать входной тензор в массив numpy внутри пользовательской функции потери keras, следуя инструкциям здесь .
Приведенный выше код работает на моем компьютере безошибки.Теперь я хочу извлечь массив значений со значениями из входного тензора.Тем не менее, я получаю следующую ошибку:
"tenorflow.python.framework.errors_impl.InvalidArgumentError: Вы должны передать значение для тензора-заполнителя 'input_1' с помощью dtype float
[[Node: input_1= Placeholderdtype = DT_FLOAT, shape = [], _device = "/ job: localhost / replica: 0 / task: 0 / cpu: 0"]] "
Мне нужно преобразовать в массив Numpyпотому что у меня есть другие модели keras, которые должны работать на входе - я не показал эти строки ниже в joint_loss, но даже приведенный ниже пример кода вообще не работает.
import numpy as np
from keras.models import Model, Sequential
from keras.layers import Dense, Activation, Input
import keras.backend as K
def joint_loss_wrapper(x):
def joint_loss(y_true, y_pred):
x_val = K.eval(x)
return y_true - y_pred
return joint_loss
input_tensor = Input(shape=(6,))
hidden1 = Dense(30, activation='relu')(input_tensor)
hidden2 = Dense(40, activation='sigmoid')(hidden1)
out = Dense(1, activation='sigmoid')(hidden2)
model = Model(input_tensor, out)
model.compile(loss=joint_loss_wrapper(input_tensor), optimizer='adam')