是否可以创建具有实际输出的CNN



trainnetwork((的输出类型必须为分类((。如何使用float/真实输出创建一个CNN?

我的意思是以下命令给出以下错误:

>> convnet = trainNetwork(input_datas, [0.0, 0.1, 0.2, 0.3], networkLayers, opts);
Error using trainNetwork>iAssertCategoricalResponseVector (line 269)
Y must be a vector of categorical responses.

(错误消息对应于[0.0,0.1,0.2,0.3]向量(,但我需要实际输出,而不是类别。

网络层是以下内容:

>> networkLayers= 
5x1 Layer array with layers:
  1   ''   Image Input       1x6000x1 images with 'zerocenter' normalization
  2   ''   Convolution       10 1x100 convolutions with stride [1  1] and padding [0  0]
  3   ''   Max Pooling       1x20 max pooling with stride [10  10] and padding [0  0]
  4   ''   Fully Connected   200 fully connected layer
  5   ''   Fully Connected   1 fully connected layer

为此,您必须更改最后一层。这可能是平方误差函数。此问题解释了您如何执行此操作

也称为回归。您必须手动添加损失功能。

答案采用两个部分

1。分类与回归这篇文章不久描述了

回归:输出变量采用连续值。

分类:输出变量为类标签。

所以我的问题是(当我问问题时(我需要一个用于回归问题的神经网络,而不是分类。

2。MATLAB框架

MATLAB中使用神经网络有两种基础方式。

旧框架使用"神经网络"类定义了全网络。可以以这种方式轻松构建某些基本网络(使用FeedForwardNet或layrecnet(,但是建立更复杂的网络是一项艰巨的工作。更多详细信息可以在此处找到使用网络类构建自定义神经网络。

R2016a引入了较新的方法。介绍可以在这里找到。我试图使用此框架。但是,该框架仅从2017a开始支持回归问题!因此,这是一个非常新的工具。但是,可以在这里找到用于使用newwer框架回归问题的描述。

相关内容

  • 没有找到相关文章

最新更新