文件交换

图片缩略图

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

引入预训练Keras模型进行预测和迁移学习
3.7
11评级

98下载

更新2020年3月18日

TensorFlow-Keras模型的导入器将使您能够导入经过预先训练的Keras模型和权重。然后你可以使用这个模型来预测或转移学习。或者,您可以将层架构作为层数组或LayerGraph对象导入。然后你可以训练这个模型。
打开kerasimporter。mlpkginstall文件将从您的操作系统或从MATLAB中启动安装过程。
这个mlpkginstall文件适用于R2017b和更高版本。
使用的例子:
一。导入路缘石图层

%导入图层

层= importKerasLayers (“digitsDAGnet.h5”);

%加载数据集以训练分类器识别数字
digitDatasetPath=fullfile(toolboxdir('nnet'),'nndemos'。。。
“nndatasets”、“DigitDataset”);

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

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

rng(1) %为重现性
trainingFileSplitRatio = 0.6;
[trainDigitData,testDigitData]=拆分标签(digitData,。。。
trainingFileSplitRatio,“随机”);

设置一些培训选项

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

%的列车网络的

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

读取图像进行分类

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

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

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

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

%利用网络对图像进行分类
label =分类(网络,I);

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

评论和评级(44)

使用importKerasNetwork出错(第94行)。无法导入网络。还不支持体重共享。万博1manbetx有什么最新消息吗?

我还得到这个错误:“导入Keras网络与超过一个输入或输出层还不支持”。万博1manbetx有任何更新吗?

仍然寻找离线安装程序或进口商为此,我有一个非互联网接入Windows 10系统2018b和深度学习结核病安装和这个包不会安装没有'打电话回家'。什么好主意吗?

摩根

我和冯腾飞有同样的问题。我想是时间分布(密集)层导致了这个问题。你知道什么时候能修好吗?

有没有离线的Linux安装程序?或说明如何下载这个离线的Linux?我的情况是,这是需要的,没有任何网络。

腾飞冯

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

支持杰夫贝利的问题,关于安装在离线matlab实例…

Umut Demir

你好,我一直得到“引用不存在的字段'class_name'.”错误。我找不到任何来源来修复这个。

杨道

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

如何为安装了Matlab的离线、非internet系统获得TensorFlow-Keras模型的深度学习工具箱导入器的副本?本页上的下载按钮仅指向必须在matlab中打开的matlab软件包安装脚本。

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

警告:无法导入图层。Keras层“BatchNormalization”还没有指定的设置
万博1manbetx支持。问题是:层“bn_1”:无法导入层轴值,而不是
还不支持-1或3。万博1manbetx

我很确定keras模型的BatchNormalization层中的“axis”参数已经被设置为-1。
有人知道我该怎么解决这个问题吗?
或者只是导入函数的一个bug?

谢谢你们。
开发这个伟大工具的伟大工作。
Chijiang

嗨,伙计们,

是否有在conv2d转置中包含填充值支持的计划?万博1manbetx

我收到了以下警告:
警告:无法导入图层。还不支持带有指定设置的Keras层‘conv2d转置’。万博1manbetx问题是:层
'conv2d_transpose_3':无法导入图层。还不支持填充值。万博1manbetx

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

我得到这个错误:

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

知道怎么解决吗?

这将是伟大的,如果它可以支持>1输出层…万博1manbetx什么计划吗?

SergeyLA

你好!除了升级到keras 2.2.4之外,请添加对具有如下图层的keras模型的支持:万博1manbetx
model.add (TimeDistributed(密度(len(映射))))

如果在Matlab中对TimeDistributed层的方法是不同的,请添加评论如何使模型具有类似的配置。

Ting苏

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

Ting苏

Hi Issac, keras 2.2.4的问题是由keras 2.2.3中引入的一个突变引起的。我们将很快提供解决方案。

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

Bingzhao山

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

jianY徐

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

我使用的是Linux安装的Matlab 2018a。即使我的工具箱配置和版本满足要求,也不能安装该软件包。
加载项资源管理器门户声明“您的平台不支持此加载项”,并且不允许我安装包。万博1manbetx

epic

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

嘉义台

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

阿戈杨

你好,在我导入Keras的yolo模型时,我还得到了一个错误“导入Keras网络,但不支持超过1个输入或输出层”。万博1manbetx但是Mathworks中有一个关于yolonet的文档。马特,你怎么找到约洛内特的。垫吗?导入其他模型或全部经过matlab训练!
谢谢你!

你好!我还发现了以下错误“不支持导入具有多个输入或输出层的Keras网络”。希望您下次可以通过支持多输入或多输出来解决此问题。非常感谢。万博1manbetx

罗伯特

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

嗨,Don Mathis,要将输入作为矢量输入传递,我将命令更改为
model=importKerasNetwork('model16.json','WeightFile','model16.h5','OutputLayerType','classification','ImageInputSize',[137],'classnames',classnames);
但当我这么做的时候,它说“ImageInputSize”不是一个可识别的参数。有没有其他方法将输入作为向量传递。请帮助

epic

Gautam, MATLAB网络总是以一个inputImageLayer作为第一层。如果您的Keras网络有矢量输入而不是图像输入,您可以将它们作为“行图像”(高度=1)传递到MATLAB网络。

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

何宇凡

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

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

是否可以导入在keras.layers中定义的层,如keras.layers.ConvLSTM2D?
那像TimeDistributed这样的包装纸呢?有办法导入吗?或者在Matlab中有类似的层吗?

会支持以前的Matlab版本万博1manbetx吗?

大卫Kuske

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

大卫Kuske

到目前为止,在Matlab中使用带有LSTM回归的NN有什么办法吗?我尝试了Matlab的nn工具箱,但尚未得到支持。万博1manbetx
然后我实现了它在Keras,现在我不能进口我的训练网络使用:/。

大卫Kuske

什么时候实施LSTM支持?谢谢万博1manbetx您

Ting苏

你好,塔尔莫,谢谢你的反馈。我们将与您联系,以获取关于重塑层的用例的更多细节。

优秀的工具箱!有没有可能我们可以得到重新塑造图层的支持?万博1manbetx否则就很难从稠密层过渡到Conv2d/ConvTranspose2d。

你好,我得到一个错误时,试图安装这个:“支持包不兼容您的版本的MATLAB或操作系统。”万博1manbetx

我在macOS Sierra 10.12.6上使用Matlab R2017b

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