繁体   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