图片缩略图

用于TensorFlow-Keras模型的深度学习工具箱导入器

导入预训练的Keras模型进行预测和迁移学习
3.5
15评级

70下载

更新2020年3月18日

TensorFlow-Keras模型的导入器将使您能够导入预先训练好的Keras模型和权重。然后你可以使用这个模型进行预测或迁移学习。或者,您可以将层架构导入为层数组或LayerGraph对象。然后你可以训练这个模型。
打开kerasimporter。来自您的操作系统或MATLAB中的mlpkginstall文件将启动您的版本的安装过程。
这个mlpkginstall文件适用于R2017b及以上版本。
使用的例子:
1.进口Keras层

%导入图层

层= importKerasLayers(“digitsDAGnet.h5”);

加载一个数据集,用于训练分类器识别数字
datdatetpath = fullfile(toolboxdir('nnet'), 'nndemos',…
“nndatasets”、“DigitDataset”);

(digitDatasetPath,…)
“IncludeSubfolders”,的确,“LabelSource”、“foldernames”);

%将数据集划分为训练和测试图像

重现性rng(1) %
trainingFileSplitRatio = 0.6;
[trainDigitData, testDigitData] = splitEachLabel (digitData,……
trainingFileSplitRatio,“随机”);

设置一些训练选项

选择= trainingOptions(20岁的“个”、“MaxEpochs”……
“InitialLearnRate”,0.001);

%的列车网络的

事先= trainNetwork (trainDigitData层,选项);

读取图像进行分类

我= imread (fullfile (digitDatasetPath ' 5 ', ' image4009.png '));
数字
imshow(我)

%使用网络对图像进行分类
标签=分类(convnet, I);
标题(['分类结果' char(label)])

2.导入一个预先训练好的Keras网络
netfile =“digitsDAGnet.h5”;
一会= {' 0 ',' 1 ',' 2 ',' 3 ',' 4 ',' 5 ',' 6 ',' 7 ',' 8 ',' 9 '};
importKerasNetwork(netfile, 'Classes', classname);

%读取图像进行分类
datdatetpath = fullfile(toolboxdir('nnet'), 'nndemos','nndatasets',…
“DigitDataset”);
我= imread (fullfile (digitDatasetPath ' 5 ', ' image4009.png '));

%使用网络对图像进行分类
标签=分类(网络,I);

%显示图像和分类结果
数字
imshow(我)
标题(['分类结果' char(label)])

意见及评分(51)

smsinks

这个功能不起作用。即使对于这里给出的例子来说也是如此。

层= importKerasLayers(“digitsDAGnet.h5”);
此类型的变量不支持大括号索引。万博1manbetx

错误
nnet.internal.cnn.keras.readModelAndTrainingConfigs > iVerifyKerasVersion(线
46)
MajorVersion = str2double (VersionCell {1} (1));

在nnet.internal.cn .keras. readmodelandtrainingconfigs中的错误(第8行)
iVerifyKerasVersion (ConfigFile);

importkeraslayers中的错误(第11行)
[ModelConfig, TrainingConfig] =
nnet.internal.cnn.keras.readModelAndTrainingConfigs (ConfigFile、格式);

importKerasLayers中的错误(第102行)
layer = nnet.internal.cn .keras. importkeraslayers (modelfile, varargin{:});

凯尔·彼得森

已编译的应用程序是否支持此函数?万博1manbetx

我有下面两个缺陷:
警告:resnet50_pascal_cards文件”。h5'保存在Keras版本'2.3.1'中。导入比'2.2.4'更新的Keras版本
不支持。万博1manbetx导入的模型可能与Keras文件中保存的模型不完全匹配。
使用importKerasNetwork时出错(第94行)
无法导入网络。还不支持重量分担。万博1manbetx
警告:resnet50_pascal_cards_inference文件”。h5'保存在Keras版本'2.3.1'中。导入较新的Keras版本
目前还不支持'2.2.4'。万博1manbetx导入的模型可能与Keras文件中保存的模型不完全匹配。
使用importKerasNetwork时出错(第94行)
Keras网络没有输出层,因为模型文件不包含丢失信息。将输出层添加到导入的
,使用'OutputLayerType'参数指定其类型。要提供类名,请使用“ClassNames”参数。

这有什么进展吗?

谢谢

穆斯塔法利亚

在ImportKerasNetwork函数中,回归部分工作良好,分类部分工作不稳定。不断给出错误“引用不存在的字段‘xxx-Layer’。”importKerasLayers部分也没有被使用,因为tf的保存和负载重量没有正常工作。

tf.version =魅惑
tf.keras.version = 2.2.4-tf
Matlab.R2020a

James34602

常见的Keras推理特征缺失:
1.动态输入/输出轴
2.交换层
3.TimeDistributed层
4.重塑层

James34602

Mathworks是否可以添加TimeDistributed支持?万博1manbetx

尼古拉Franzoso

如何在gpu上加载网络?
谢谢

埃米尔Kristiansen

Saikat Sarkar

使用importKerasNetwork时出错(第94行)。无法导入网络。还不支持重量分担。万博1manbetx任何更新吗?

我也得到了这个错误:“导入Keras网络有一个以上的输入或输出层还不被支持”。万博1manbetx有什么更新吗?

那么MIMO(多输入多输出)网络呢?

拉里·里德尔

我仍然在寻找一个离线安装或导入程序,我有一个非互联网接入Windows 10系统与2018b和深度学习Tb安装,这个包将不会安装没有‘打电话回家’。什么好主意吗?

摩根

我和腾飞峰有同样的问题。我认为是Timedistributed(稠密)层引起的问题。知道什么时候能修好吗?

布莱恩经纪

有办法获得Linux的离线安装程序吗?或者关于如何离线下载Linux的说明?我有这样的情况,在没有任何网络的情况下,这是需要的。

腾飞冯

我只是得到一个错误反馈'无法导入网络,因为一些网络层还不支持';万博1manbetx我只是设计了一个简单的模型,包括lstm和TimeDistributed(稠密)层。如果这些功能在以后能够得到支持,我将非常满意。万博1manbetx

本·威瑟雷尔

支持Jeff Bailey关于安装离线matlab实例的问题…

Umut Demir

嗨,我一直得到"引用不存在的字段'class_name'."错误。我找不到任何来源来解决这个问题。

杨淘

嗨,我想知道是否有一种方法来导入一个包含自定义层的模型?谢谢。

杰夫•贝利

对于一个安装了Matlab的离线、非互联网系统,如何获得一个用于TensorFlow-Keras模型的深度学习工具箱导入器?此页面上的下载按钮仅指向一个必须在matlab中打开的matlab包安装脚本。

Chijiang段

你好,
当我导入tf时,我得到了这个警告。具有批处理标准化层的keras模型:

警告:无法导入图层。Keras层的批处理规范化与指定的设置还没有
万博1manbetx支持。问题是:层'bn_1':无法导入层。'axis'值,而不是
-1或3还不支持。万博1manbetx

我很确定keras模型批处理归一化层中的“axis”参数已经被设置为-1。
有人知道我该如何解决这个问题吗?
或者只是导入函数的错误?

谢谢你们。
开发这个工具做得很好。
Chijiang

杜马兹阿里

嗨,伙计们,

有没有计划在conv2d转置中包括填充值支持?万博1manbetx

我得到了如下警告:
警告:无法导入图层。指定设置的Keras层' conv2d转置'还不受支持。万博1manbetx问题是:层次
'conv2d_transpose_3':无法导入层。还不支持填充值。万博1manbetx

预先感谢你的帮助。
致以最亲切的问候
阿里

阿里Ozgur Argunsah

我得到了这个错误:

使用importKerasLayers时出错(第96行)
无法从文件'mask_rcnn.h5'导入图层
因为它不包含'model_config'属性。

有办法解决吗?

内森Lepora

如果它能支持>1输出层,那对我们来说就太棒了……万博1manbetx什么计划吗?

munaiyi munaiyi

SergeyLA

这就跟你问声好!在upgarde to keras 2.2.4的基础上,请添加对keras模型的图层支持,万博1manbetx如下图所示:
model.add (TimeDistributed(密度(len(映射))))

或者如果TimeDistributed层的Matlab方法是不同的,请添加注释如何使模型与类似的配置。

Ting苏

你好,Bingzhao, Argo,目前还不支持MIMO(多输入多输出)网络。万博1manbetx我们将考虑在未来支持MIMO网络的导入。万博1manbetx

Ting苏

Hi Issac, keras 2.2.4的问题是由于keras 2.2.3中引入了一个break change引起的。我们会尽快提供解决方案。

艾萨克·莱顿

你好,我无法导入keras==2.2.4保存的网络。降级到keras==2.1.0似乎很好。

Bingzhao山

这就跟你问声好!我还得到以下错误'导入Keras网络与超过1的输入或输出层还不被支持。万博1manbetx同时,衷心希望非图像输入层得到支持。万博1manbetx谢谢!

jianY徐

我想创建一个特殊的层来添加噪音的数据。但是我的matlab版本是2017b,我没有例子“gaussianNoiseLayer.m”。我很想知道添加噪声层的编码结构。
非常感谢!!

Kivanc高丝

我使用Linux安装的Matlab 2018a。即使我的工具箱配置和版本满足要求,也不能安装软件包。
add-on explorer门户声明“此插件在您的平台上不受支持”,并且不让我安装该包。万博1manbetx

epic

Chia-Yi Tai, Keras与MATLAB的匹配至少要精确到1e-4。也许你的预处理在这两种情况下不完全一样。请联系支持或MATLAB答案以万博1manbetx获得更具体的响应。

Chia-Yi大

我已经成功导入keras训练模型和分类图片,但我得到了不同的结果之间的Python (tensorflow)和MATLAB的答案进行分类,模型是完全相同,我也使用调整和翻转来匹配不同的,是任何其他可能的原因还是它仍然没有不同的神经网络运行时,
谢谢你!

阿尔戈杨

你好,我在用Keras导入yolo模型时,还得到了“Import Keras networks with more than 1 input or output layer is not suppor万博1manbetxted”的错误。但是Mathworks中有一个关于yolonet的文档。mat,你是怎么得到yolonet的?垫吗?从其他模型导入或完全用matlab训练!
谢谢你!

温刘

这就跟你问声好!我还得到以下错误'导入Keras网络与超过1的输入或输出层还不被支持。万博1manbetx希望你能通过支持多输入多输出解决这个问题。万博1manbetx多谢。

罗伯特。

Goodday,
我得到以下错误'导入Keras网络与超过一个输入或输出层还不被支持。万博1manbetx“你知道什么时候会得到支持吗?”万博1manbetx多谢。

GAUTAM SHREEDHA BHAT

嗨,Don Mathis,为了将输入作为矢量输入传递,我将命令更改为this
模型= importKerasNetwork(‘model16.json’,‘WeightFile’,‘model16。h5”、“OutputLayerType”、“分类”、“ImageInputSize ' 37[1],“类名”,类名);
但当我做了tis,它说'ImageInputSize'不是一个公认的参数。有没有其他方法把输入作为向量传递。好心的帮助

epic

高塔姆,MATLAB网络总是有一个输入层作为第一层。如果Keras网络有向量输入而不是图像输入,那么您将把它们作为“行图像”传递给MATLAB网络(height=1)。

GAUTAM SHREEDHA BHAT

这只对图像输入有效吗?我使用的输入不是图像,当我检查keras和matlab中的分类器输出时,它们都是不同的。有人能澄清一下吗?

Yufan他

希望你能让它支持PReLu。万博1manbetx
谢谢

Yodish

它能在windows 10上运行吗?得到错误消息

dudy卡尔

可以导入keras中定义的层吗?层喜欢keras.layers.ConvLSTM2D吗?
那么像TimeDistributed这样的包装呢?有没有办法导入它或者在Matlab中有类似的层?

菲利普Zelger

是否支持以前的Matlab版万博1manbetx本?

大卫Kuske

很高兴今天看到它!我会tomorry

大卫Kuske

到目前为止,在Matlab中使用带有LSTM回归的神经网络有什么方法吗?我尝试过Matlab nn工具箱,但还不支持。万博1manbetx
然后我在Keras中实现它,现在我不能导入我的训练过的网络使用:/。

大卫Kuske

什么时候实现LSTM支持?万博1manbetx谢谢你!

Ting苏

你好,Talmo,谢谢你的反馈。我们将与您联系,以了解关于重塑层的用例的更多细节。

Talmo佩雷拉

优秀的工具箱!我们有可能得到重塑图层的支持吗?万博1manbetx这使得从稠密的图层到对流二维变得有点困难。

Eftychios Pnevmatikakis

嗨,我在尝试安装时遇到了一个错误:“支持包与您的MATLAB版本或操作系统不兼容。”万博1manbetx

我在macOS Sierra 10.12.6使用Matlab R2017b

MATLAB版本兼容性
创建R2017b
兼容R2017b到R2020a
平台的兼容性
窗户 macOS Linux