繁体   English   中英

在Keras中,在模型中使用Lambda时无法保存模型检查点。 输入错误ValueError:只能将大小为1的数组转换为Python标量

[英]In Keras, Unable to save model checkpoints when using Lambda in model. Give error ValueError: can only convert an array of size 1 to a Python scalar

在Keras中,在模型中使用Lambda时,我无法保存模型检查点。 它给出一个值错误:

ValueError: can only convert an array of size 1 to a Python scalar

代码如下

model1 = Sequential()
model1.add(Embedding(MAX_NUM_WORDS,
               EMBEDDING_DIM,
               weights=[embedding_matrix],
               input_length=MAX_SEQUENCE_LENGTH,
               trainable=False))

model1.add(TimeDistributed(Dense(300, activation='relu')))
#model1.add(Lambda(lambda x: K.sum(x, axis=1), output_shape=(300,)))
model1.add(Lambda(lambda x: func(x), output_shape=(300,)))

model1_input = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32', 
                     name='model1_input')

model1_output = model1(model1_input)

根据网上的一些建议,我在顺序API中使用Lambda,然后使用功能性API。 请帮助

为了保存模型,Lambda( func )中使用的func必须可序列化。 取决于它的复杂性,这可能很棘手,如果还不是这样,则应尽量避免使用在函数外部定义的常量或变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM