matlab - 自定义深度学习层出错(自定义重塑层不起作用)
问题描述
我正在使用来自 8 个通道和 500 个时间样本的时间序列数据的 CNN。我的深度学习架构由以下几层组成。在第一步中,我在通道上执行一维卷积(输入大小 [500 8 1]),所以我得到 16 个 [500 x 1] 数组,输出大小变为 [500 x 1 x 16]。我编写了一个自定义函数来将其大小重塑为 [500 x 16 ],但是当我训练网络时它给了我一个错误。请只看图片并帮助我。我已尽我所能解释它。谢谢
架构图片: https ://www.mathworks.com/matlabcentral/answers/uploaded_files/238391/Picture1.png
当我使用 analyzeNetwork(layers) 分析网络时。它表明我的架构是正确的这是它的结果 https://www.mathworks.com/matlabcentral/answers/uploaded_files/238392/Capture.jpeg
但是当我开始训练网络时,它给了我以下错误 https://www.mathworks.com/matlabcentral/answers/uploaded_files/238393/Capture.jpeg
这是我编写的重塑层的代码:
classdef reshapeLayer < nnet.layer.Layer
properties
end
methods
function layer = reshapeLayer(Name)
layer.Name = Name;
end
function [Z] = predict(layer, X)
sz = [size(X,1) size(X,2)*size(X,3) size(X,4)];
Z = reshape(X , sz);
end
function [dldx] = backward(layer,~,~,dldz,~)
sz = [size(dldz,1) , 1 , size(dldz,2) , size(dldz,3)];
dldx = reshape(dldz , sz);
end
end
end
解决方案
推荐阅读
- sql - 我在开始时间和结束时间之间获取数据,但如果结束时间为空怎么办?
- vue.js - 我页面上的导航抽屉未按预期工作(Vuetify)
- android - Android 电视盒在 10 秒内关闭我的应用程序
- java - Android LocationManager 中 NMEA 语句的来源
- mongodb - 在 mongod.conf 中启用安全性后,Mongod 正在恢复
- tsql - TSQL 行号按引用和日期拆分
- c - 无法理解如何创建没有参数的过程原型
- java - 如何在没有命令行的情况下从 java 代码制作 war 文件?
- c# - ML.NET - 特征列“特征”的架构不匹配:预期向量
, 得到向量 - mysql - 选择 STR_TO_DATE(('20190919 114121', "%Y-%m-%d %T");