zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    JAVA中的CAS
    深入介绍Java中的锁[原理、锁优化、CAS、AQS]
    Java并发之AQS详解
    Java线程池ThreadPoolExecutor使用和分析(一)
    LinkedBlockingQueue
    生产者消费者两种实现:wait/notifyAll和Lock/Condition
    Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore
    jvm系列(1):JVM问答
    mysql不存在插入否则更新
    java.util.MissingResourceException: Can't find bundle for base name db, locale zh_CN
  • 原文地址:https://www.cnblogs.com/cv-pr/p/6925349.html
Copyright © 2011-2022 走看看