【问题标题】:Is it possible to create a CNN with real output?是否可以创建具有真实输出的 CNN?
【发布时间】:2017-09-15 15:41:46
【问题描述】:

trainNetwork() 的输出类型必须是 categorical()。如何创建具有浮点/实数输出的 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 如下:

>> 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

【问题讨论】:

    标签: matlab neural-network conv-neural-network matconvnet


    【解决方案1】:

    为此,您必须更改最后一层。这可以是均方误差函数。 this issue explain how can you do this

    也称为回归。您必须手动添加损失函数。

    【讨论】:

      【解决方案2】:

      答案分为两部分

      1.分类与回归 This post describe shortly那个

      回归:输出变量取连续值。

      分类:输出变量采用类标签。

      所以我的问题是(当我问这个问题时)我需要一个神经网络来解决回归问题,而不是分类问题。

      2。 Matlab 框架

      在 Matlab 中有两种使用神经网络的基本方法。

      较旧的框架使用“神经网络”类定义全网络。使用这种方式可以轻松构建一些基础网络(例如使用feedforwardnetlayrecnet),但构建更复杂的网络是一项艰巨的工作。更多使用网络类构建自定义神经网络的详细信息,请参见here

      在 R2016a 中引入了更新的方法。介绍可以找到here。我尝试使用这个框架。但是这个框架只支持从 2017a 开始的回归问题!所以这是一个非常新的工具。但是here 可以找到使用新框架解决回归问题的描述。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-18
        • 2020-05-15
        • 1970-01-01
        • 2018-03-29
        • 1970-01-01
        • 1970-01-01
        • 2019-06-01
        • 2016-12-28
        相关资源
        最近更新 更多