问题:
今天想换senet来训练,需要添加一个层,然后重新编译caffe
https://github.com/hujie-frank/SENet
当我改了caffe.proto文件后,准备重新make编译caffe时,出现如下问题:
文字版如下:
PROTOC src/caffe/proto/caffe.proto
caffe.proto:1:1: Interpreting non ascii codepoint 239.
caffe.proto:1:1: Expected top-level statement (e.g. "message").
caffe.proto:1:2: Interpreting non ascii codepoint 187.
caffe.proto:1:3: Interpreting non ascii codepoint 191.
Makefile:638: recipe for target '.build_release/src/caffe/proto/caffe.pb.cc' failed
make: *** [.build_release/src/caffe/proto/caffe.pb.cc] Error 1
原因:
用文本编辑器打开了文件后,文本编辑器在caffe.proto文件的开头静默插入字节顺序标记。
错误消息暗示文件中的前三个字节是357 273 277,或者EF BB BF
,这是UTF-8字节顺序标记:
用Vim打开文件
sudo vim caffe.proto
看不出有什么问题:
但是在执行caffe.proto文件目录下执行:
head -1 caffe.proto | od -c
会出现下图的情况,我们可以看到文本开头静默插入357 273 277 三个字符:
解决方法:
1.Vim打开caffe.proto文件
sudo vim caffe.proto
2.消除多出的字符
在vim中输入
:set nobomb
先输入冒号:
然后再输入set nobomb
3.保存并退出
在vim中输入
:wq
即可保存退出vim
4.重新编译caffe
回到caffe目录下
输入
make clean
make all
make pycaffe
编译成功,问题解决!!!