Об этой ошибке много тем, но я не могу применить их к своему делу.Вот упрощенная версия того, что я пытаюсь сделать:
import numpy as np
from keras.models import Model
from keras.layers import Input, multiply, Dense, Lambda, Multiply
import keras.backend as K
Некоторые фиктивные данные:
xx = np.array([1,2,3]).reshape(3,1)
maskvec = np.array([1,2,3]).reshape(3,1)
Это функция для сравнения маски со значением в маске:
def compfun(x):
comp = K.equal(x[0], x[1])
return K.cast(comp, dtype = "float32")
inp = Input(shape = (1,))
lay = Dense(1)(inp)
mask = Input(shape = (1,))
m2 = Lambda(compfun)([mask, K.variable(2)]) #2 is a magic number. In my use-case it'll be in a for-loop
masked = multiply([lay, m2])
model = Model(inputs = [inp, mask], outputs = [masked])
И страшные
AttributeError: 'NoneType' object has no attribute '_inbound_nodes'
Буду очень признателен за понимание того, что здесь происходит!Действительно бьюсь головой о стену.
Я пытался сделать второй аргумент compfun
в массив, а не в константу, но я получаю ту же ошибку (я понятия не имею, может ли K.equal
принимать скаляры или нет, если другой аргумент является вектором)