Caffe2(2)----Eclipse环境中使用Caffe2

使用IDE开发深度学习的应用,可以事半功倍,Caffe2已经全面支持Python,这里介绍如何在Ubantu14.04下,利用EclipseCaffe2的二次开发或应用。

1.安装eclipse

具体请参考:ROS知识(6)----基于Eclipse开发

 

2.安装eclipse的插件PyDev

具体请参阅:几个常用的Eclipse插件

 

3建立PyDev新项目

a.点击"File->New->Other...",弹出对话框,选择“PyDev Project”,如下图所示:

b.选择下一步,弹出如下对话框,在“Project Name”中输入项目名称,然后点击"Finish"。

c.设置caffe2的环境依赖

鼠标右击项目,选择“property”,弹出如下对话框,并选择“PyDev-Interpreter/Grammar”

 d.点击“New Folder”添加两个Python的路径,分别为:

/usr/local/caffe2/python
/usr/local

e.添加后如下图所示,点击”Apply“,然后点击”OK“退出。

f.重启eclipse,重新导入项目。

 

4.测试Caffe2

a.在项目的src下添加python文件test1.py,然后添加如下代码

from caffe2.python import workspace, model_helper,cnn
import numpy as np

data_dim = 1000
label_dim = 10

print("Build Net")
# Create the input data
data = np.random.rand(label_dim, data_dim).astype(np.float32)
# Create labels for the data as integers [0, 9].
label = (np.random.rand(label_dim) * 10).astype(np.int32)
workspace.FeedBlob("data", data)
workspace.FeedBlob("label", label)

# Create model using a model helper
m = cnn.CNNModelHelper(name="my first net")
fc_1 = m.FC("data", "fc1", dim_in=data_dim, dim_out=10)
pred = m.Sigmoid(fc_1, "pred")
[softmax, loss] = m.SoftmaxWithLoss([pred, "label"], ["softmax", "loss"])
m.AddGradientOperators([loss]) 
workspace.RunNetOnce(m.param_init_net)
workspace.CreateNet(m.net)
# Run 100 x 10 iterations
print("Start to Train")
for j in range(0, 10):
    data = np.random.rand(label_dim, data_dim).astype(np.float32)
    label = (np.random.rand(label_dim) * 10).astype(np.int32)
    workspace.FeedBlob("data", data)
    workspace.FeedBlob("label", label)
    workspace.RunNet(m.name, 10)   # run for 10 times
    print("%d:%f"%(j, workspace.FetchBlob("loss")))
print("End Training")

b.点击工具栏的运行或调试按钮,如果一切ok,会输出一下的迭代信息:

Build Net
Start to Train
0:2.324265
1:2.382756
2:2.357759
3:2.298997
4:2.331089
5:2.285640
6:2.336110
7:2.274807
8:2.366172
9:2.337986
End Training

 

5.代码

下载:caffe2learning

 

posted @ 2017-05-31 17:57  horsetail  阅读(1354)  评论(0编辑  收藏  举报