![2754dc6174b6db8ff337d0db24d1112e.png](https://i-blog.csdnimg.cn/blog_migrate/c953282f686f21c5e378ede4cc77bf1f.jpeg)
从官网搞到的MNIST数据集并不是储存格式很是奇怪...我还是改成了bmp和csv,用的python代码可以直接导出,只需要改一些地址,详见:
CSDN-专业IT技术社区-登录blog.csdn.net首先对图片和标签数据进行了一些预处理,基本如下:
(*Data Import and Preprocessing*)
trainString=StringTemplate["/Users/apple/Desktop/MNIST/train/train_``.bmp"][#]&/@Range[0,59999];
trainLabel=Flatten@Import["/Users/apple/Desktop/MNIST/train_labels.csv"];
trainLabel=IdentityMatrix[10][[1+trainLabel[[#]]]]&/@Range[60000];
trainImage=Import[ToString[trainString[[#]]]]&/@Range[60000];
trainImage=ColorConvert[trainImage[[#]],"Grayscale"]&/@Range[60000];
trainData=ImageData[trainImage[[#]]]&/@Range[60000];
trainData=Flatten[trainData[[#]],1]&/@Range[60000];
testString=StringTemplate["/Users/apple/Desktop/MNIST/test/test_``.bmp"][#]&/@Range[0,9999];
testLabel=Flatten@Import["/Users/apple/Desktop/MNIST/test_labels.csv"];
(*testLabel=IdentityMatrix[10][[1+testLabel[[#]]]]&/@Range[10000];*)
testImage=Import[ToString[testString[[#]]]]&/@Range[10000];
testImage=ColorConvert[testImage[[#]],"Grayscale"]&/@Range[10000];
testData=ImageData[testImage[[#]]]&/@Range[10000];
testData=Flatten[testData[[#]],1]&/@Range[10000];
采用bp神经网络进行训练,300+100 HN,Softmax,CrossEntropy
net=NetChain[
{
NetInitialize@LinearLayer[300,"Input"->28*28],
ElementwiseLayer[Ramp],
NetInitialize@LinearLayer[100,"Input"->300],
ElementwiseLayer[Ramp],
NetInitialize@LinearLayer[10,"Input"->100],
SoftmaxLayer[]
},
"Output"->NetDecoder[{"Class",Range[0,9]}]
];
traindata=trainData[[#]]->trainLabel[[#]]&/@Range[60000];
results=NetTrain[
net,traindata,All,
LossFunction->CrossEntropyLossLayer["Probabilities"],
MaxTrainingRounds->15
]
trainedNet=results["TrainedNet"];
testError=N@Count[testLabel-trainedNet[testData],Except[0]]/10000
![397ea56d0f1f1d3e32b70b08db1455f8.png](https://i-blog.csdnimg.cn/blog_migrate/f2b9a4f135004cce9a692b2aa31bb76c.jpeg)
![93147f6d97026fad960d40984570b6d2.png](https://i-blog.csdnimg.cn/blog_migrate/4bebbace5854ff2e646f2edb39a683fc.jpeg)
最后error rate 1.6%这样子...
首次训练还算成功...