文章 "神经网络变得轻松(第二十五部分):实践迁移学习"

 

新文章 神经网络变得轻松(第二十五部分):实践迁移学习已发布:

在最晚的两篇文章中,我们开发了一个创建和编辑神经网络模型的工具。 现在是时候通过实践示例来评估迁移学习技术的潜在用途了。

测试结果如下图所示。 如您所见,预训练模型开始时误差较小。 但很快第二个模型就贴近了,且它们的数值非常接近。 这证实了之前的结论,即编码器架构对整个模型的性能有重大影响。

递归模型学习动态的比较

注意学习率。 预训练模型验算一个世代所需的时间减少了六倍。 当然,这只是纯粹的时间,不考虑自动编码器训练时间。

作者:Dmitriy Gizlyk

 

你好,迪米特里、

我非常欣赏这一系列文章!谢谢您!但请帮助我解决这个问题:

如果我按照本文所述加载 EURUSD_PERIOD_H1_rnn_vae.nn,我得到的信息是 "加载模型错误 "和 "文件已损坏":


如果我进行跟踪,发现加载失败发生在 NeuroNet.mqh 中的这一行:


如果加载第 23 部分中名为 "EURUSD_i_PERIOD_H1_test_rnn.nnw "的模型,似乎可以正常工作,但该模型只有两层。这是不正确的。我错过了什么吗?

 
UlrichG #:

如果我按本文所述加载 "EURUSD_PERIOD_H1_rnn_vae.nn "文件,会收到 "加载模型出错 "和 "文件已损坏 "的信息:

如果我从第 23 部分加载名为 "EURUSD_i_PERIOD_H1_test_rnn.nnw "的模型,它似乎可以工作,但只有两层。这是不正确的。我错过了什么吗?

您好,
要加载 "EURUSD_PERIOD_H1_rnn_vae.nnw "文件,您需要用新的 NeuroNet.mqh 库重新编译 NetCreator。在最后一个模型中,我们将 CBufferDouble 替换为 CBufferFloat。并添加了一些层类型。

您可以下载 最新版本的文件。
 

您可以下载最新版本的听证 文件。

在最新版本的 NeuroNet.mqh 中,第 2501 页有一个重要警告:

第 2501 页 if(inputs.AssingnArray(input Vals) || ...... )

已过时的行为,隐藏方法调用q 将在未来的 MQL 编译器版本中禁用。


在最新版本的 NetCreatorPanel.mqh 中,有 21 条重要警告。从第 940 页开始

第 935 页 字符串 temp;

第 936 页 ArrayFree(result);

第 937 页 switch(layr.type);

第 938 页 {

第 939 页 case defNeuronBaseOCL :

p 940 temp = StringFormat ("Dense (outputs %d, \ activation %s, \ optimisation %s)", ..... )

警告- 'a' 字符转义序列无法识别

o "未识别的字符转义序列


由于所有这些警告,"_rnn.nnw "文件将无法加载!


在旧版本(第 24 部分)中,在出现错误的萨满教之后,同样的文件"_rnn.nnw "被加载到 NetCreatorPanel.mqh 中,并且可以创建一个新网络。

但无法进行测试。在 check_net 文件中有两个重要警告!

函数 Train 第 222 页和第 307 页


第 219 页 for(int res = 0; (res <3 && sum >0); res++)

p 220 TempData.Update(res, TempData, At(res) /sum);

第 222 页 switch(TempData.Maximum(0,3))

警告 - 过时行为,在未来的 MQL 编译器版本中将禁用隐藏方法调用。

日志显示失败,代码为 32767(参数不正确)

我的 MetaTrader 版本是 5120。

建议有可能用警告来解决问题吗?在我看来,对于像我这样的傻瓜来说,这是一个

是关键一课,不掌握它,唯一能做的就是停止。