簡體   English   中英

使用Keras Functional API為Tensorflow LITE建立模型

[英]Build a model with Keras Functional API for Tensorflow LITE

我正在使用Keras Functional API進行測試,因為我需要將模型遷移到Tensorflow LITE。 我建立了一個具有3個輸入和3個輸出的模型。 如果所有輸入都具有相同數量的觀察值,則該模型將起作用。 我不明白這一點,因為這些是獨立的。

ValueError: All input arrays (x) should have the same number of samples. Got array shapes: [(10, 5), (20, 5), (30, 5)

我想建立一個模型,其中包含多個具有不同觀察值的輸入。 那可能嗎?

import numpy as np
from keras.layers import Input, Dense
from keras.models import Model
capas = 3

data = [ np.random.random(size=(50,5)) for i in range(3)]
labels = [ np.random.random(size=(50,2)) for i in range(3)]
visible=[]
preds=[]
for i in range( capas):
    visible.append(Input(shape=(5,)))
    x=Dense(5, activation='relu')(visible[i])
    x=Dense(10, activation='relu')(x)
    preds.append( Dense(2)(x))

model = Model(inputs=visible,output=preds)


model.compile(optimizer='adam',
              loss='mean_squared_error',
              metrics=['accuracy'])
model.fit(data, labels,epochs=50)

子模型是否獨立是沒有關系的,因為如果您創建多輸入多輸出模型,則可以通過將每個模型的損失合並(加權)為執行梯度下降的單個損失來進行訓練,並且這需要在每個輸入和輸出中使用相同數量的樣本。

既然您說每個模型都是獨立的,則可以獨立訓練它們,然后創建一個新模型,將三個模型(及其訓練的權重)與多個輸入和輸出相結合。

暫無
暫無

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

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