keras的model.save出现错误;can';t pickle“U thread.RLock objects”;

keras的model.save出现错误;can';t pickle“U thread.RLock objects”;,keras,constants,pickle,Keras,Constants,Pickle,我在keras中使用以下模型: inputs = Input(shape=( img_width, img_height))** inpFloat = Input(shape =(1,1))** in0= Lambda(lambda x: inpFloat*x)(inputs)** model =Model([inputs, inpFloat],in0)** 当我做以下预测时 xx = np.random.rand(1, 150, 1025)** y1=np.array([2.0])

我在keras中使用以下模型:

inputs = Input(shape=( img_width, img_height))** 

inpFloat = Input(shape =(1,1))**

in0= Lambda(lambda x: inpFloat*x)(inputs)**

model =Model([inputs, inpFloat],in0)**
当我做以下预测时

xx = np.random.rand(1, 150, 1025)**

y1=np.array([2.0])**
y1 =np.expand_dims(y1,axis=1)**

y1 = np.expand_dims(y1, axis=2)**
print(model.predict([xx,y1]))**
它起作用了。但是,在执行model.save时,会出现以下错误:

rv=减速器(4)

TypeError:无法pickle\u thread.RLock对象

我假设它与我使用Lambda函数的方式有关(如果我用一个数字替换常量,它就会起作用)


有什么想法吗?

定义一个函数,不要在这里使用lambda。pickl无法处理在本地作用域中定义的对象(我怀疑它在这里被视为本地作用域。)谢谢。只是,如果我用函数替换lambda,我也应该保存它(在字典中),不是吗?