是否可以创建具有真实输出的 CNN?
Is it possible to create a CNN with real output?
trainNetwork() 的输出类型必须是 categorical()。如何创建具有 float/real 个输出的 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
为此,您必须更改最后一层。这可以是均方误差函数。 this issue explain how can you do this
也叫回归。您必须手动添加损失函数。
答案分两部分
1.分类与回归
This post describe shortly
Regression: the output variable takes continuous values.
Classification: the output variable takes class labels.
所以我的问题是(当我问这个问题时)我需要一个神经网络来解决回归问题,而不是class化。
2。 Matlab 框架
在 Matlab 中使用神经网络有两种基本方法。
较旧的框架使用 "Neural Network" class 定义了所有网络。可以通过这种方式轻松构建一些基础网络(例如使用 feedforwardnet or layrecnet), but building more complex networks is a hard work. More details building custom neural networks with the network class can be found here.
R2016a 中引入了更新的方法。可以找到介绍 here. I tried to use this framework. But this framework supports regression problems only from 2017a! So This is a really new tool. But here 可以找到使用新框架解决回归问题的描述。
trainNetwork() 的输出类型必须是 categorical()。如何创建具有 float/real 个输出的 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
为此,您必须更改最后一层。这可以是均方误差函数。 this issue explain how can you do this
也叫回归。您必须手动添加损失函数。
答案分两部分
1.分类与回归 This post describe shortly
Regression: the output variable takes continuous values.
Classification: the output variable takes class labels.
所以我的问题是(当我问这个问题时)我需要一个神经网络来解决回归问题,而不是class化。
2。 Matlab 框架
在 Matlab 中使用神经网络有两种基本方法。
较旧的框架使用 "Neural Network" class 定义了所有网络。可以通过这种方式轻松构建一些基础网络(例如使用 feedforwardnet or layrecnet), but building more complex networks is a hard work. More details building custom neural networks with the network class can be found here.
R2016a 中引入了更新的方法。可以找到介绍 here. I tried to use this framework. But this framework supports regression problems only from 2017a! So This is a really new tool. But here 可以找到使用新框架解决回归问题的描述。