由于有现成的服务器,所以跳过了环境搭建过程。
1.首先在win7 上下载安装xshell5用于与linux服务器交互。
交互方式:安装好xshell(free for home/school模式)后,点击启动软件并建立新连接:在主机栏里输入服务器的IP地址,点击确定后会弹窗提示输入服务器用户名和密码。正确输入后方可交互。(具体教程如下:http://jingyan.baidu.com/article/295430f13fb4db0c7f005065.html)
2.其次便可上手练习手写体数字识别例程。
指导文档:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
I.下载数据时执行get_mnist.sh文件,若服务器上无该文件则可以在服务器上用vim生成并编辑这个文件或在windows上编辑好后用xshell的rz命令上传至服务器(详细操作步骤:http://www.linuxidc.com/Linux/2015-05/117975.htm ,不过这种方法可能会存在windows和linux编码不一样的问题,会导致文件无法使用,我用vim +文件名 命令打开文件后,使用:set ff=UNIX方法改变编码格式 )。如若在下载时出现Connecting to yann.lecun.com(yann.lecun.com)|128.122.47.89|:80... failed: Connection timed out.错误,则可以访问网页http://yann.lecun.com/exdb/mnist/下载并解压后传到服务器,方法同上。
II.以上下载的数据集为二进制文件,下一步将其转换为LEVELDB或LMDB才能被caffe识别,网上说采用这两种数据格式是有利于提高IO效率,请看https://www.zhihu.com/question/41854215。转换时执行create_mnist.sh文件,可能会出现的问题:
1)./create_mnist.sh: 16: ./create_mnist.sh:build/examples/mnist/convert_mnist_data.bin: not found :请一定按照指导文档http://caffe.berkeleyvision.org/gathered/examples/mnist.html在caffe根目录下操作,且确保convert_mnist_data.bin文件在指定目录下。
2)F0206 14:56:25.158859 27064convert_mnist_data.cpp:48] Check failed: image_file Unable to open file mnist/train-images-idx3-ubyte
*** Check failure stack trace: ***
@ 0x7f1051f64daa (unknown)
@ 0x7f1051f64ce4 (unknown)
@ 0x7f1051f646e6 (unknown)
@ 0x7f1051f67687 (unknown)
@ 0x40393a convert_dataset()
@ 0x40242d main
@ 0x7f1051174f45 (unknown)
@ 0x402476 (unknown)
@ (nil) (unknown)
Aborted (core dumped)
这种异常一般是由于红色加粗文件错误引起的,如文件路径,文件名称,文件编码格式等,请耐心逐一确认修改。
III.convert_mnist_data.cpp源码学习:
1)大小端存储:http://www.cnblogs.com/wuyuan2011woaini/p/4126487.html
小端模式:内存的低地址存数据的低位,内存的高地址存数据的高位。低低高高。
大端模式:内存的低位存数据的高位,内存的高地址存数据的低位。 低高高低。
2)二进制移位操作
总结:
左移时总是移位和补零;
右移时无符号数是移位和补零,此时称为逻辑右移;
而有符号数大多数情况下是移位和补最左边的位(也就是补最高有效位),移几位就补几位,此时称为算术右移。
IV.lenet模型学习
问题:数据大小和所需内存之间的关系???