python - 使用 Keras 功能 API 为 Tensorflow LITE 构建模型
问题描述
我正在使用 Keras 功能 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)
解决方案
子模型是否独立无关紧要,因为如果您制作多输入多输出模型,则通过将每个模型的损失组合(加权)为执行梯度下降的单个损失来训练它,这要求每个输入和输出中的样本数量相同。
既然你说模型每个都是独立的,你可以独立训练它们,然后制作一个新模型,将三个模型(及其训练的权重)与多个输入和输出相结合。
推荐阅读
- git - 使用 Bitbucket 时从 Egit Eclipse 插件拉取请求
- git - git:提交(和记录)的最佳实践
- java - 从 REST JSON 响应中获取 HTML ID 标签
- java - 如何识别和解决 groovy grails 应用程序中的内存泄漏和打开文件过多的问题?
- c++ - QT 和 JIRA Rest API:/rest/api/2/issue/createmeta 意外返回韩语问题类型名称
- javascript - 我可以在最后更改默认参数吗
- python - 使用 Scipy 进行线性规划失败,但二次规划成功找到了解决方案
- mongodb - MongoDB 模型与嵌入式文档的一对多关系
- sql - 如何在 SQL 中检索具有多个数值的一个特定数字表单文本?
- php - shopware Controller 未获取模板