Numpy 如何在keras lambda层中使用tf.py_func包装python代码。ValueError:应定义密集输入的最后一个维度。一无所获
我想用tf.py_fucn将numpy代码封装在使用keras的定制lambda层中 注意:为了简单起见,我展示了一个简单的np幂函数 这就是我所做的Numpy 如何在keras lambda层中使用tf.py_func包装python代码。ValueError:应定义密集输入的最后一个维度。一无所获,numpy,tensorflow,keras,lambda,layer,Numpy,Tensorflow,Keras,Lambda,Layer,我想用tf.py_fucn将numpy代码封装在使用keras的定制lambda层中 注意:为了简单起见,我展示了一个简单的np幂函数 这就是我所做的 def my_func(x): return np.power(x, 2) def my_lambda_func(x): return tf.py_function(my_func, [x], tf.float32) def model(): inp = Input(shape=(2,)) x = De
def my_func(x):
return np.power(x, 2)
def my_lambda_func(x):
return tf.py_function(my_func, [x], tf.float32)
def model():
inp = Input(shape=(2,))
x = Dense(128)(inp)
x = Dense(128)(x)
z = Lambda(my_lambda_func)(x)
output = Dense(1)(z)
model = Model(inputs=inp, outputs=output)
return model
model = model ()
model.compile(optimizer='adam', loss='mse')
然后我得到了这个错误
ValueError回溯(最近一次调用上次) 在() 21 22 --->23型号=型号() 24 model.compile(优化器='adam',loss='mse') 3帧 /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/layers/core.py内置(self,input_-shape) 1179最后尺寸=张量形状。尺寸值(输入形状[-1]) 1180如果最后一个尺寸为无: ->1181 raise VALUE ERROR(
密集
输入的最后一个维度)
应定义“1182”。找到None
”)
1183 self.input_spec=InputSpec(min_ndim=2,轴={-1:last_dim})
ValueError:应定义
密集
输入的最后一个维度。找到None
您可能需要指定Lambda层z的输出形状,tf.py_函数将给出None作为输出形状,它与紧随其后的致密层不匹配。你应该试试:
z=λ(my_Lambda_func)(x)
z、 设置_形(x.shape)