簡體   English   中英

轉換keras模型后,coreml中的輸入形狀不正確

[英]Incorrect input shape in coreml after converting keras model

我有這樣的keras模型:

inputlayer = Input(shape=(126,12))

model = BatchNormalization()(inputlayer)
model = Conv1D(16, 25, activation='relu')(model)
model = Flatten()(model)
model = Dense(output_size, activation='sigmoid')(model)

model = Model(inputs=inputlayer, outputs=model)

我轉換為coreml

coreml_model = coremltools.converters.keras.convert(model,
                                                    class_labels=classes)
coreml_model.save('speech_model.mlmodel')

所以,我希望看到MultiArray (Double 126x12) ,但是我看到MultiArray (Double 12)

在此處輸入圖片說明

你能幫我說我做錯了嗎?

正如G-mel標識的那樣 ,似乎發生此錯誤是因為輸入的長度為2。然后,CoreMLtools假定您的輸入具有[Seq, D]形狀。 您可以解決這個問題,添加一個重塑層:

inputlayer = Input(shape=(126 * 12,))

model = Reshape((126,12))(inputlayer)
model = BatchNormalization()(model)
model = Conv1D(16, 25, activation='relu')(model)
model = Flatten()(model)
model = Dense(output_size, activation='sigmoid')(model)

model = Model(inputs=inputlayer, outputs=model)

然后,您的應用程序必須拼合輸入。 但是,這並不理想,因為在GPU上效率不是很高。 希望這個問題將很快得到解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM