簡體   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