当冻结重量转移学习GoogLeNet错误

54视图(30天)
你好,
最近我一直在探索Matlab的机器学习和神经网络的能力,我一直试图使用转移学习GoogLeNet pretrained网络看到它执行一些文本识别数据集。
我一直在密切关注语法文档 在这里 但是我遇到一些错误当我试图冻结初始层。示例中的语法如下:
层= lgraph.Layers;
连接= lgraph.Connections;
层(一一驳斥)= freezeWeights(层(一一驳斥));
lgraph = createLgraphUsingConnections(层,连接);
出于某种原因,当试图设置层和连接变量如图所示,我得到错误消息“表达左边的等号不是一个有效的目标为一个任务”。这发生当我试图分配“层”和“连接”变量。奇怪的是,我可以设置这两个变量,如果我第一次“lgraph类型。层”或“lgraph。连接到工作区中,然后这些工作区后,允许的。层”或“。连接的属性存储在默认的临时变量答”,然后设置所需的变量与“层=答”或“连接=答”。
我遇到的第二个问题是“freezeWeights()的命令。当我尝试运行得到错误消息,“未定义的函数或变量freezeWeights”这是奇怪的考虑我已经下载了googleNet支持包。万博1manbetx有另一个支持包freezeWeig万博1manbetxhts命令吗?我似乎无法找到任何命令。
感谢任何帮助。

接受的答案

Oleksii Sidorov
Oleksii Sidorov 2018年4月7日
亲爱的安德鲁,
第一个版本的MatLab函数freezeWeights 2018()实现。我很确定,你面对的问题,因为你使用的是旧版本的MatLab。
1评论
安德鲁•陈
安德鲁•陈 2018年4月10日
实际上是这样。我用2017 b。那里是一个转移学习例子googlenet但它不使用冻结权重函数。

登录置评。

更多的答案(3)

pefage pefage
pefage pefage 2018年4月10日
MATLAB 2018有同样的问题
2的评论
Runcong旷
Runcong旷 2022年8月17日
我能看到“freezeWeights。m”文件现在在matlab集成:
' ' '
% = freezeWeights层(层)集的学习速率
%参数层的层数组| |层为零。
功能层= freezeWeights(层)
2 = 1:尺寸(层,1)
道具=属性(层(2));
p = 1:元素个数(道具)
propName =道具{p};
如果~ isempty(正则表达式(propName LearnRateFactor $,“一旦”))
层(ii)。(propName) = 0;
结束
结束
结束
结束
' ' '
所以没有必要做0 2因素。

登录置评。


迈克尔Markzon
迈克尔Markzon 2018年5月14日
我用2018 a和错误
1评论
克里斯托弗Bokros
克里斯托弗Bokros 2018年6月22日
我也一样,但由于代码容易编写如@pefage pefage证明这不是一个大问题。

登录置评。


Aqib泰姬
Aqib泰姬 2018年9月13日
我用2018 windows10。
我解决了freezeWeights问题@pefage pefage演示
但是现在我未定义错误createLgraphUsingConnections(层,连接)
未定义的函数或变量“createLgraphUsingConnections”。
现在如何处理?
2的评论
Runcong旷
Runcong旷 2022年8月17日
你好,我很好奇,因为我只是用我自己的定义层神经网络。
如果我直接使用层(层数组),我需要做“createLgraphUsingConnections”?
这只是对 layergraph 对象,对吧?
我认为这里的例子是花哨的使用lgraph替代和连接。
如果你有一些了解,请告诉我。
谢谢。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!