框架使用

框架使用

关于LMDB文件转换时出现的问题求助

综合问题陶潜水 回复了问题 • 2 人关注 • 1 个回复 • 40 次浏览 • 1 天前 • 来自相关话题

caffe name和top问题

深度学习理论alex68 回复了问题 • 3 人关注 • 4 个回复 • 76 次浏览 • 1 天前 • 来自相关话题

caffe分类图片,训练结果的test accuracy与用C++接口的单张图片分类结果严重不符

图像分类yulian99 回复了问题 • 3 人关注 • 2 个回复 • 104 次浏览 • 2 天前 • 来自相关话题

求助,MFC 下面使用caffe,

深度学习应用爱丽虹 回复了问题 • 8 人关注 • 7 个回复 • 2070 次浏览 • 2 天前 • 来自相关话题

caffe新写的层调试出错

Caffe开发使用匿名用户 回复了问题 • 3 人关注 • 2 个回复 • 72 次浏览 • 5 天前 • 来自相关话题

68M的数据生成LMDB为什么将近占了我1G的磁盘?

深度学习应用xujianhua 回复了问题 • 4 人关注 • 4 个回复 • 469 次浏览 • 6 天前 • 来自相关话题

对于刚开始接触深度学习领域的小白,应该怎样系统地进行该领域学习?

综合问题bhj52099 回复了问题 • 23 人关注 • 8 个回复 • 2318 次浏览 • 2017-08-16 17:49 • 来自相关话题

caffe有upsample吗?

目标识别c408550969 回复了问题 • 3 人关注 • 3 个回复 • 92 次浏览 • 2017-08-14 19:21 • 来自相关话题

下载的imagenet的train图片不全,txt需不需要修改?

回复

深度学习理论c408550969 发起了问题 • 1 人关注 • 0 个回复 • 85 次浏览 • 2017-08-10 19:28 • 来自相关话题

使用caffe训练网络时候,每次取的数据是随机的还是按顺序取的?

综合问题CatherineW 回复了问题 • 3 人关注 • 2 个回复 • 98 次浏览 • 2017-08-09 21:15 • 来自相关话题

caffe怎样实现在单gpu上开多线程,提高gpu的利用率

大规模优化joshua_1988 回复了问题 • 2 人关注 • 1 个回复 • 111 次浏览 • 2017-08-09 18:23 • 来自相关话题

fineturn inceptionv4 加载现成的caffe model 出现以下问题

参数调节joshua_1988 回复了问题 • 2 人关注 • 1 个回复 • 92 次浏览 • 2017-08-09 18:20 • 来自相关话题

Caffe可以比较方便的使用多个GPU进行预测吗

框架开发使用tensorflow 回复了问题 • 3 人关注 • 2 个回复 • 109 次浏览 • 2017-08-08 12:46 • 来自相关话题

在vs2013中如何配置caffe(刚开始接触caffe)

综合问题laoma 回复了问题 • 7 人关注 • 6 个回复 • 1074 次浏览 • 2017-08-03 17:39 • 来自相关话题

在很多需要回归bbox网络中都会看到Eltwise层,为什么用这个呢

目标识别数学爱好者26 回复了问题 • 2 人关注 • 2 个回复 • 548 次浏览 • 2017-08-01 16:35 • 来自相关话题

caffe的总体流程是怎样的?

深度学习理论lizhli2825 回复了问题 • 36 人关注 • 6 个回复 • 6948 次浏览 • 2017-08-01 14:18 • 来自相关话题

CPU运行caffe是否有多线程的开关?以此来提高CPU利用率。

综合问题墨子浅心 回复了问题 • 2 人关注 • 2 个回复 • 932 次浏览 • 2017-07-31 16:47 • 来自相关话题

make runtest 显示ViennaCL: FATAL ERROR: Could not find kernel

Caffe环境安装alex68 回复了问题 • 2 人关注 • 1 个回复 • 113 次浏览 • 2017-07-30 16:00 • 来自相关话题

Caffe配置问题,win10+vs2015+py3.6

回复

Caffe开发使用恩赐解脱 发起了问题 • 1 人关注 • 0 个回复 • 110 次浏览 • 2017-07-29 22:22 • 来自相关话题

caffe只能读jpg格式的图片吗?

深度学习应用alex68 回复了问题 • 4 人关注 • 3 个回复 • 218 次浏览 • 2017-07-26 17:59 • 来自相关话题

条新动态, 点击查看
辛淼

辛淼 回答了问题 • 2015-12-02 23:10 • 4 个回复 不感兴趣

在ubuntu下调试caffe的代码,用什么IDE比较好?

赞同来自:

我用的是EclipseCDT,可以把Caffe的工程引入进来

首先导入makefile工程到eclipse
       File→New→Project→C/C++ →Makefile Project with Existing Code.
然后选择从现有... 显示全部 »
我用的是EclipseCDT,可以把Caffe的工程引入进来

首先导入makefile工程到eclipse
       File→New→Project→C/C++ →Makefile Project with Existing Code.
然后选择从现有代码创建一个makefile项目
       选Create a new Makefile Project from existing code
       设置工程名
       设置代码路径
       语言选C++
       工具链选linux GCC
然后就可以把工程引入进来了

以上~
薛云峰

薛云峰 回答了问题 • 2015-12-24 11:54 • 3 个回复 不感兴趣

怎样把caffe提取的特征格式mdb转换成mat和txt

赞同来自:

可以自己写个matlab的扩展,使用memorydatalayer进行输入,然后将得到的blob内存数据结合matlab的c接口转换成matlab的矩阵。blob的读取百度可以找到
下面是读取pool5的代码示例:
boost::shared_ptr<c... 显示全部 »
可以自己写个matlab的扩展,使用memorydatalayer进行输入,然后将得到的blob内存数据结合matlab的c接口转换成matlab的矩阵。blob的读取百度可以找到
下面是读取pool5的代码示例:
boost::shared_ptr<caffe::Blob<NetF>> pool5 = _net->blob_by_name("pool5");
    cv::Mat Pool5FeatureMat(pool5->num(), pool5->width()*pool5->height()*pool5->channels(), CV_32F);
    int channel_step = pool5->height()*pool5->width();
    for (size_t n = 0; n < pool5->num(); n++)
    {
        for (size_t c = 0; c < pool5->channels(); c++)
        {
            
            for (size_t h = 0; h < pool5->height(); h++)
            {
                for (size_t w = 0; w < pool5->width(); w++)
                {
                    float value = pool5->data_at(n, c, h, w);
                }
                
            }
        }
    }
然后我们使用matlab的接口就可以自己进行matlab的矩阵转换了,如果是单张图片num一层的循环可以去掉。
下面我给出c++将数组转成matlab的矩阵的代码:
#include <iostream.h>  
#include "xMatrix.h"  
#include "MatlabEngine.h"  
void main()  
{  
    printf("matlab&c++ /n      /  
        visualsan@yahoo.cn  NUAA/  
        2011/n------------------------/n");  
    //matlab 引擎  
    CMatlabEngine  g;  
    //打开  
    cout<<"Open Matlab Engine..../n";  
    if( g.OpenEngine() )  
    {  
        //1.从matlab中获取一个5X5的随机矩阵  
        char tmp[200];  
          
        //准备矩阵5X5  
        double  mr[]=  
        {  
            1.2,4.4,5.5,6.6,7.7,  
            1.12,1.44,15.5,1.66,1.77,  
            21.2,2.44,2.55,2.66,2.77,  
            3.12,3.44,3.55,3.66,3.77,  
            4.12,4.44,4.55,4.66,4.77  
        };  
        //转换为matlab格式,按列存储  
        xMatrixDouble::C2Mat(mr,5,5,mr);  
        xMatrixDouble  xd(5,5,mr);  
        //写入矩阵  
        g.PutVar("text_matrix",xd.GetArray());  
        //计算矩阵的逆矩阵  
        g.EvalString("text_matrix_inv=inv(text_matrix);");  
        mxWrap  text_matrix;  
        mxWrap  text_matrix_inv;  
        //获取名称为text_matrix的矩阵  
        g.GetVar("text_matrix",&text_matrix);  
        xMatrixDouble *pd=(xMatrixDouble*)text_matrix.GetArrayInterface();  
        //获取名称为text_matrix_inv的逆矩阵  
        g.GetVar("text_matrix_inv",&text_matrix_inv);  
        xMatrixDouble *pd_inv=(xMatrixDouble*)text_matrix_inv.GetArrayInterface();  
        //打印矩阵  
        cout<<"原矩阵:/n";  
        for (int i=0;i<xd.GetR();i++)  
        {  
            for (int j=0;j<xd.GetC();j++)  
            {  
                cout<<xd.GetRealAt(i,j)<<" ";  
            }  
            cout<<endl;  
        }  
        cout<<"从matlab中读取的矩阵:/n";  
        for ( i=0;i<pd->GetR();i++)  
        {  
            for (int j=0;j<pd->GetC();j++)  
            {  
                cout<<pd->GetRealAt(i,j)<<" ";  
            }  
            cout<<endl;  
        }  
        cout<<"从matlab中读取的逆矩阵:/n";  
        for ( i=0;i<pd_inv->GetR();i++)  
        {  
            for (int j=0;j<pd_inv->GetC();j++)  
            {  
                cout<<pd_inv->GetRealAt(i,j)<<" ";  
            }  
            cout<<endl;  
        }  
  
        //关闭引擎  
        g.CloseEngine();  
    }  
  
      
}  
顺便把c++读取matlab矩阵的代码也贴出来吧
#include <iostream.h>  
#include "xMatrix.h"  
#include "MatlabEngine.h"  
void main()  
{  
    printf("matlab&c++ /n      /  
        visualsan@yahoo.cn  NUAA/  
        2011/n------------------------/n");  
    //matlab 引擎  
    CMatlabEngine  g;  
    //打开  
    cout<<"Open Matlab Engine..../n";  
    if( g.OpenEngine() )  
    {  
        //1.从matlab中获取一个5X5的随机矩阵  
        char tmp[200];  
        //调用rand生成随机矩阵  
        strcpy(tmp,"rang_natrix=rand(5);");  
        g.EvalString(tmp);  
        mxWrap  rang_natrix;  
        //获取名称为rang_natrix的矩阵  
        g.GetVar("rang_natrix",&rang_natrix);  
        xMatrixDouble *pd=(xMatrixDouble*)rang_natrix.GetArrayInterface();  
        //打印矩阵  
        for (int i=0;i<pd->GetR();i++)  
        {  
            for (int j=0;j<pd->GetC();j++)  
            {  
                cout<<pd->GetRealAt(i,j)<<" ";  
            }  
            cout<<endl;  
        }  
        //关闭引擎  
        g.CloseEngine();  
    }      
}
这样基本你需要的操作就都有了。
ruirui_ICT

ruirui_ICT 回答了问题 • 2016-01-07 16:38 • 8 个回复 不感兴趣

Caffe 是否支持多GPU并行训练?

赞同来自:

现在的caffe版本已经支持多GPU并行了,原理比较简单,就是每个GPU分别算一个batch,n个GPU,实际的batchsize就是n*batch,比如原来用一个GPU,batchsize设置成256,现在用4个GPU,把batchsize设置成64,和原来... 显示全部 »
现在的caffe版本已经支持多GPU并行了,原理比较简单,就是每个GPU分别算一个batch,n个GPU,实际的batchsize就是n*batch,比如原来用一个GPU,batchsize设置成256,现在用4个GPU,把batchsize设置成64,和原来的一个GPU的运算是等价的。
 
实际使用的时候基本不用设置,和原来一样编译好就可以用了。命令就是在-gpu 后面对多个GPU号用逗号隔开,比如-gpu 1,2,3,4 就是同时使用1-4共4个GPU,GPU编号可以不连续,或者直接用-gpu all,就是使用所有的GPU。
 
官方的github里是这样写的
54
正好我也在用顺手截图
55
可以看到输出的log里提示了使用了两个GPU
ruirui_ICT

ruirui_ICT 回答了问题 • 2016-01-21 22:18 • 6 个回复 不感兴趣

caffe的总体流程是怎样的?

赞同来自:

我很想详细讲一下的,然而自己才疏学浅,学艺不精,只能大概讲讲,就当抛砖引玉了(⊙v⊙)
 
很多人建议caffe从四个层次来理解:Blob、Layer、Net、Solver,和题主的问题还挺match的
 
1.Blob
Blob是caffe基本的数据结构,用... 显示全部 »
我很想详细讲一下的,然而自己才疏学浅,学艺不精,只能大概讲讲,就当抛砖引玉了(⊙v⊙)
 
很多人建议caffe从四个层次来理解:Blob、Layer、Net、Solver,和题主的问题还挺match的
 
1.Blob
Blob是caffe基本的数据结构,用四维矩阵 Batch×Channel×Height×Weight表示,存储了网络的神经元激活值和网络参数,以及相应的梯度(激活值的残差和dW、db)。其中包含有cpu_data、gpu_data、cpu_diff、gpu_diff、mutable_cpu_data、mutable_gpu_data、mutable_cpu_diff、mutable_gpu_diff这一堆很像的东西,分别表示存储在CPU和GPU上的数据(印象中二者的值好像是会自动同步成一致的),其中带data的里面存储的是激活值和W、b,diff中存储的是残差和dW、db,另外带mutable和不带mutable的一对指针所指的位置是相同的,只是不带mutable的只读,而带mutable的可写。
 
2.Layer
Layer代表了神经网络中各种各样的层,组合成一个网络。一般一个图像或样本会从数据层中读进来,然后一层一层的往后传。除了数据层比较特殊之外,其余大部分层都包含4个函数:LayerSetUp、Reshape、Forward、Backward。其中LayerSetup用于初始化层,开辟空间,填充初始值什么的。Reshape是对输入值进行维度变换,比如pooling接全连接层的时候要先拉成一个向量再计算。Forward是前向传播,Backward是后向传播。当然对于我这种喜欢偷懒的童鞋一般学习的时候最喜欢看各种层的Backward函数了,最好是对着公式边推导边看,可以有更直观的理解。
那么数据是如何在层之间传递的呢?每一层都会有一个(或多个)Bottom和top,分别存储输入和输出,比如bottom[0]->cpu_data()存输入的神经元激活值,换成top存输出的,换成cpu_diff()存的是激活值的残差,换成gpu是存在GPU上的数据,再带上mutable就可写了,这些是神经元激活值相关的,如果这个层前后有多个输入输出层,就会有bottom[1],比如accuracy_layer就有两个输入,fc8和label。而每层的参数会存在this->blobs_里,一般this->blobs_[0]存W,this->blobs_[1]存b,this->blobs_[0]->cpu_data()存的是W的值,this->blobs_[0]->cpu_diff()存的梯度dW,b和db也类似,然后换成gpu是存在GPU上的数据,再带上mutable就可写了。。(各种变量好多好晕,但愿我说清楚了。。)
哦对了,凡是能在GPU上运算的层都会有名字相同的cpp和cu两个文件,cu文件中运算时基本都调用了cuda核函数,可以在math_function.cu中查看。
 
3.Net
Net就是把各种层按train_val.prototxt的定义堆叠在一起,首先进行每个层的初始化,然后不断进行Update,每更新一次就进行一次整体的前向传播和反向传播,然后把每层计算得到的梯度计算进去,完成一次更新,这里注意每层在Backward中只是计算dW和db,而W和b的更新是在Net的Update里最后一起更新的。而且在caffe里训练模型的时候一般会有两个Net,一个train一个test。刚开始训练网络时前面的一大堆输出,网络的结构什么的也都是这里输出的。
 
4.Solver
Solver是按solver.prototxt的参数定义对Net进行训练,首先会初始化一个TrainNet和一个TestNet,然后其中的Step函数会对网络不断进行迭代,主要就是两个步骤反复迭代:①不断利用ComputeUpdateValue计算迭代相关参数,比如计算learning rate,把weight decay加上什么的,②调用Net的Update函数对整个网络进行更新。迭代中的一大堆输出也是在这里输出的,比如当前的loss和learning rate什么的。
 
综上,为了把整个过程串起来,可以从tools/caffe这个我们最常用的函数入手,训练一个网络然后跟着数据的流动方向看看一个网络是怎么更新的,然后找自己比较感兴趣的地方细看。我本人主要看各种Layer的实现比较多,对其余的部分理解也有限,希望可以一起讨论~
 
(针对最近大大们头疼的侵权问题,在这里弱弱的加一句:本内容为本人原创,仅授权给CaffeCN使用,如需转载须注明转载来源。(⊙v⊙))
ruirui_ICT

ruirui_ICT 回答了问题 • 2016-02-18 17:12 • 7 个回复 不感兴趣

在caffe中卷积核是三维的还是二维的?

赞同来自:

刚开学比较无聊,我想借这个问题讲一下cnn的输入输出维度怎么算的。。
先说结论:一个卷积核是三维的(channel×height×width),每个卷积层有若干卷积核,一个卷积核输出的feature map是二维的,每层输出的feature map数量和卷积核... 显示全部 »
刚开学比较无聊,我想借这个问题讲一下cnn的输入输出维度怎么算的。。
先说结论:一个卷积核是三维的(channel×height×width),每个卷积层有若干卷积核,一个卷积核输出的feature map是二维的,每层输出的feature map数量和卷积核数量相等。
 
以经典的AlexNet为例,先上图
89
输入图像是227×227×3(注1),conv1的卷积核参数是:
kernel_size: 11
stride: 4
num_output: 96
因此实际的卷积核维度是11×11×3,channel是输入的图像的第三维(如果是后面的卷积层,其卷积核的channel是与之做卷积的输入的feature map的数量),即3,做卷积的时候,是11×11×3的卷积核和输入图像里的11×11×3的块进行卷积,得到一个值,卷积的过程是在height和width上滑动,第三维上不滑动,因此得到的feature map是二维的,公式是
$$\text{FeaSize}=\lfloor\frac{\text{InputSize}-\text{KernelSize}}{\text{Stride}}\rfloor+1$$
(注意这里是下取整,pooling是上取整,二者是反着的)
因此conv1输出的feature map size为$$\lfloor\frac{227-11}{4}\rfloor+1=55$$
输出的feature map数量和卷积核数量相同,为96,因此conv1的输出是55×55×96
 
后面的层类似,只要注意卷积核的第三维是由输入的feature map的数量决定就可以了,这一点从图上也可以看出来。
 
最后祝大家春节快乐~
 
注1:论文里是224×224×3,caffe官网的例子里是227×227×3,这里以官网的例子为例。
 
(针对最近大大们头疼的侵权问题,在这里弱弱的加一句:本内容为本人原创,仅授权给CaffeCN社区(caffecn.cn)使用,如需转载须注明转载来源。(⊙v⊙))
简单说下。
假设你的batch size是32,你单卡,每次迭代处理的就是32张图像。
你现在换了两卡,并行处理,你实际上每次迭代处理的图像就是64张。
训练速度的提升,体现在每次迭代的loss下降更多,收敛更快。
也就是说,以前可能需要100万次迭代才能收敛... 显示全部 »
简单说下。
假设你的batch size是32,你单卡,每次迭代处理的就是32张图像。
你现在换了两卡,并行处理,你实际上每次迭代处理的图像就是64张。
训练速度的提升,体现在每次迭代的loss下降更多,收敛更快。
也就是说,以前可能需要100万次迭代才能收敛,现在可能50-70万次就可以了。
所以从这个角度说,训练时间缩短了,训练速度提升了。

微软的caffe配置

Caffe环境安装timothy 发表了文章 • 5 个评论 • 2006 次浏览 • 2016-04-27 21:15 • 来自相关话题

在师弟的帮助下,断断续续弄了两天的时间终于把微软的caffe配置成功了。各种问题都碰到了,最后GPU还更换了,终于测试通过。总结了一下供大家参考
在师弟的帮助下,断断续续弄了两天的时间终于把微软的caffe配置成功了。各种问题都碰到了,最后GPU还更换了,终于测试通过。总结了一下供大家参考

caffe for window的autoencoder运行问题

框架开发使用SongEsther 回复了问题 • 4 人关注 • 4 个回复 • 2639 次浏览 • 2016-08-21 19:45 • 来自相关话题

谁能提供一下caffe在做train()时候的详细流程图,代码看的晕乎乎的

框架开发使用爱在路上 回复了问题 • 15 人关注 • 2 个回复 • 2923 次浏览 • 2016-08-23 09:02 • 来自相关话题

关于LMDB文件转换时出现的问题求助

回复

综合问题陶潜水 回复了问题 • 2 人关注 • 1 个回复 • 40 次浏览 • 1 天前 • 来自相关话题

caffe name和top问题

回复

深度学习理论alex68 回复了问题 • 3 人关注 • 4 个回复 • 76 次浏览 • 1 天前 • 来自相关话题

caffe分类图片,训练结果的test accuracy与用C++接口的单张图片分类结果严重不符

回复

图像分类yulian99 回复了问题 • 3 人关注 • 2 个回复 • 104 次浏览 • 2 天前 • 来自相关话题

求助,MFC 下面使用caffe,

回复

深度学习应用爱丽虹 回复了问题 • 8 人关注 • 7 个回复 • 2070 次浏览 • 2 天前 • 来自相关话题

caffe新写的层调试出错

回复

Caffe开发使用匿名用户 回复了问题 • 3 人关注 • 2 个回复 • 72 次浏览 • 5 天前 • 来自相关话题

68M的数据生成LMDB为什么将近占了我1G的磁盘?

回复

深度学习应用xujianhua 回复了问题 • 4 人关注 • 4 个回复 • 469 次浏览 • 6 天前 • 来自相关话题

caffe有upsample吗?

回复

目标识别c408550969 回复了问题 • 3 人关注 • 3 个回复 • 92 次浏览 • 2017-08-14 19:21 • 来自相关话题

下载的imagenet的train图片不全,txt需不需要修改?

回复

深度学习理论c408550969 发起了问题 • 1 人关注 • 0 个回复 • 85 次浏览 • 2017-08-10 19:28 • 来自相关话题

使用caffe训练网络时候,每次取的数据是随机的还是按顺序取的?

回复

综合问题CatherineW 回复了问题 • 3 人关注 • 2 个回复 • 98 次浏览 • 2017-08-09 21:15 • 来自相关话题

caffe怎样实现在单gpu上开多线程,提高gpu的利用率

回复

大规模优化joshua_1988 回复了问题 • 2 人关注 • 1 个回复 • 111 次浏览 • 2017-08-09 18:23 • 来自相关话题

fineturn inceptionv4 加载现成的caffe model 出现以下问题

回复

参数调节joshua_1988 回复了问题 • 2 人关注 • 1 个回复 • 92 次浏览 • 2017-08-09 18:20 • 来自相关话题

Caffe可以比较方便的使用多个GPU进行预测吗

回复

框架开发使用tensorflow 回复了问题 • 3 人关注 • 2 个回复 • 109 次浏览 • 2017-08-08 12:46 • 来自相关话题

在vs2013中如何配置caffe(刚开始接触caffe)

回复

综合问题laoma 回复了问题 • 7 人关注 • 6 个回复 • 1074 次浏览 • 2017-08-03 17:39 • 来自相关话题

在很多需要回归bbox网络中都会看到Eltwise层,为什么用这个呢

回复

目标识别数学爱好者26 回复了问题 • 2 人关注 • 2 个回复 • 548 次浏览 • 2017-08-01 16:35 • 来自相关话题

caffe的总体流程是怎样的?

回复

深度学习理论lizhli2825 回复了问题 • 36 人关注 • 6 个回复 • 6948 次浏览 • 2017-08-01 14:18 • 来自相关话题

CPU运行caffe是否有多线程的开关?以此来提高CPU利用率。

回复

综合问题墨子浅心 回复了问题 • 2 人关注 • 2 个回复 • 932 次浏览 • 2017-07-31 16:47 • 来自相关话题

make runtest 显示ViennaCL: FATAL ERROR: Could not find kernel

回复

Caffe环境安装alex68 回复了问题 • 2 人关注 • 1 个回复 • 113 次浏览 • 2017-07-30 16:00 • 来自相关话题

Caffe配置问题,win10+vs2015+py3.6

回复

Caffe开发使用恩赐解脱 发起了问题 • 1 人关注 • 0 个回复 • 110 次浏览 • 2017-07-29 22:22 • 来自相关话题

caffe只能读jpg格式的图片吗?

回复

深度学习应用alex68 回复了问题 • 4 人关注 • 3 个回复 • 218 次浏览 • 2017-07-26 17:59 • 来自相关话题

利用caffe做SRCNN如何加两个label

回复

Caffe开发使用xyjessicaking 回复了问题 • 3 人关注 • 1 个回复 • 841 次浏览 • 2017-07-26 11:37 • 来自相关话题

微软的caffe配置

Caffe环境安装timothy 发表了文章 • 5 个评论 • 2006 次浏览 • 2016-04-27 21:15 • 来自相关话题

在师弟的帮助下,断断续续弄了两天的时间终于把微软的caffe配置成功了。各种问题都碰到了,最后GPU还更换了,终于测试通过。总结了一下供大家参考
在师弟的帮助下,断断续续弄了两天的时间终于把微软的caffe配置成功了。各种问题都碰到了,最后GPU还更换了,终于测试通过。总结了一下供大家参考
默认话题