【caffe-Windows】caffe+VS2013+Windows+GPU配置+cifar使用

前言

国际惯例,先来波地址:

CUDA WIN7:链接:http://pan.baidu.com/s/1nvyA3Qp 密码:h0f3   官方网址:https://developer.nvidia.com/cuda-toolkit

CUDA WIN10:链接:http://pan.baidu.com/s/1eRDJYmA 密码:1m4e

此处可以下载各种cuda版本:https://developer.nvidia.com/cuda-toolkit-archive

cudnn:链接:http://pan.baidu.com/s/1hr3Ug76 密码:vmdq  官方网址:https://developer.nvidia.com/cudnn     【可下载V5.0版本】

【更新日志2017-8-9】

偶然间发现了一条重要信息,caffe的微软分支竟然明确标出了支持cudnn v4.0和v5.0,而且BVLC的分支也明确标出只支持cudnn v3.0和cudnn4.0,原来一直忽视掉了这条信息,尴尬,还自己踩进了用cudnn v5.0编译BVLC -caffe分支的坑。特在此提示大家,目前微软的caffe支持cuda8.0+cudnn v5.0的编译,而这两个依赖都是目前NVIDIA官方网站推荐的,编译的时候只需要把CommonSettings.props的cuda版本改成<CudaVersion>8.0</CudaVersion>即可。

第一步:

为了方便,直接拷贝一个无GPU版本的caffe,根据情况修改一下名字,一般来说路径最好不要带中文,避免不必要麻烦,此处命名为CaffeDev-GPU文件夹。

安装CUDA(一直下一步就行了),然后解压cudnn

第二步:

修改配置文件路径E:\CaffeDev-GPU\caffe-master\windows下的CommonSettings.props,此处可对比无GPU版本。将GPU版本的配置文件修改如下:


更新日志2017-11-1

如果你没有cudnn或者当前的CUDA版本仅支持CUDNNv5,而caffe版本仅支持CUDNNv3和v4,那么上面的UseCuDNN也可以设置成false, 也就是说类似于这样

<CpuOnlyBuild>false</CpuOnlyBuild>
<UseCuDNN>false</UseCuDNN>
<CudaVersion>8.0</CudaVersion>

第三步:

修改系统环境变量,为了不出现什么麻烦,将解压的D:\caffe tool\cudnn-7.0-win-x64-v4.0-prod\cuda中的bin、include、lib三个文件夹拷贝到环境变量中CUDA_PATH显示的路径中的文件夹去去,直接覆盖,需要替换的替换~~~【此处非加环境变量哦,因为拷贝过去以后就已经存在环境变量中了】

然后在系统变量中添加变量名为:CuDnnPath 变量值为:D:\caffe tool\cudnn-7.0-win-x64-v4.0-prod的路径,此处的路径是你解压的cudnn地方,读者根据自己电脑做修改。接下来和CPU版本一样,运行caffe.sln,分别用debug和release都生成一遍。


第四步:

其实差不多完了,这里简要说一下:按照前面无GPU版本,建立input_folder,与它并列建立两个bat文件,内容如下:

convert.bat

convert_cifar_data.exe  input_folder output_folders leveldb
pause

mean.bat

compute_image_mean.exe output_folders/cifar10_train_leveldb mean.binaryprotopause

运行之

第五步:

将output_folders内的两个文件和mean.binaryproto拷贝到E:\CaffeDev-GPU\caffe-master\examples\cifar10下,并且修改cifar10_quick_solver.prototxt最后一句的CPU为GPU

在E:\CaffeDev-GPU\caffe-master下建立一个bat文件:

train.bat

.\Build\x64\Release\caffe.exe train --solver=examples/cifar10/cifar10_quick_solver.prototxt
pause
同样运行之

不得不说,这速度,呼呼地~~~~比用CPU训练四个小时快不知道多少倍

第六步:

在E:\CaffeDev-GPU\caffe-master\Build\x64\Release下建立一个bat:

classification.bat

classification.exe E:\CaffeDev-GPU\caffe-master\examples\cifar10\cifar10_quick.prototxt E:\CaffeDev-GPU\caffe-master\examples\cifar10\cifar10_quick_iter_4000.caffemodel.h5 E:\CaffeDev-GPU\caffe-master\examples\cifar10\mean.binaryproto E:\CaffeDev-GPU\caffe-master\examples\cifar10\synset_words.txt E:\CaffeDev-GPU\caffe-master\examples\cifar10\dog.jpg
pause

【此处的dog跟前面的无GPU版本一样,读者可以去网上随便下载】

dog.jpg


cat.jpg


运行此bat以后:


可以发现,和上次无GPU版本的结果貌似有点不一样吧~~~但是快哭了可怜滴狗狗依旧没摆脱被识别为猫的命运

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【一些网站的收集】包含机器学习深度学习大牛主页等

数学概念部分 旋转矩阵、欧拉角、四元数的比较 欧拉角和四元数的表示 四元数与旋转 B样条曲线 非常好的概率统计学习的主页 误差方差偏差 编程语言学习 C#编程视频 OpenGL编程NeHe OpenGL官网 OpenGL“我叫MT“纯手工3D动画制作之1——基础介绍 【强大】非常好的Op…

c#将像素转换为页面单位

转自&#xff1a;http://blog.csdn.net/zhuzhao/article/details/3553100 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing…

世界坐标和页面坐标

在进行绘图时必须考虑这两种坐标。 世界坐标是整个区域的坐标&#xff0c;而页面坐标是可视区的坐标。这两种坐标是通过滚动条来体现出来的。 页面坐标的原点始终是窗口可视区的坐上角&#xff0c;世界坐标的原点始终不变&#xff0c;这两种坐标和VC中的屏幕坐标和客户坐标很…

常用坐标系统

1. 设备坐标系与屏幕坐标系设备坐标&#xff08;Device Coordinate&#xff09;又称为物理坐标&#xff08;Physical Coordinate&#xff09;&#xff0c;是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对…

华为2014校园招聘的机试题目

华为2014校园招聘的机试题目和2013年的完全一样。 一、题目描述&#xff08;60分&#xff09;&#xff1a; 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序&#xff0c;若字符串中出现多个相同的字符&#xff0c;将非首次出现的字符过滤掉。 比如字符串…

C++ 命名空间

1. 什么是命名空间 在编程语言中&#xff0c;命名空间是一种特殊的作用域&#xff0c;它包含了处于该作用域中的所有标示符&#xff0c;而且其本身也是由标示符表示的。命名空间的使用目的是为了将逻辑相关的标示符限定在一起&#xff0c;组成相应的命名空间&#xff0c;可使整…

安装好hadoop集群后,报错如下n org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /data/hadoop-roo

master错误&#xff1a; n org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /data/hadoop-root-namenode-master.log._COPYING_ could only be replicated to 0 nodes instead of minReplication (1). There are 0 datanode(s) running and no node(s) ar…

hadoop学习1 java操作HDFS

1、创建目录 package hdfs.operation;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;public class MakeDir {public static void main(String[] args) throws IOExceptio…

hadoop学习2 记录配置hadoop环境的那些坑

1、在你的学习阶段&#xff0c;记住先关闭防火墙。 centos&#xff1a; systemctl stop firewalled.service2、windows本地配置eclipse&#xff0c;远程调测阶段&#xff1a;第一&#xff1a; 还是先关闭防火墙第二&#xff1a; 本地配置文件位置放对第三&#xff1a; 配置的时…

hadoop学习3 查找块的位置

1、hadoop会以块的形式存储在HDFS系统。通过命令可以查看所在节点和块的位置&#xff1a; [rootmaster softpackage]# hadoop fs -put scala-2.10.4.tgz /[rootmaster softpackage]# hadoop fsck /scala-2.10.4.tgz -files -locations -blocksDEPRECATED: Use of this script …

hadoop学习4 调测错误备案

0、An internal error occurred during: "Map/Reduce location status updater". java.lang.NullPointerException解决方法&#xff1a; 关闭防火墙1、Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/yarn/util/Apps解决方…

hadoop学习5 搭建storm集群

参阅&#xff1a; http://www.cnblogs.com/freeweb/p/5179410.html 非常感谢 注意集群的启动顺序以及概念。 [rootmaster bin]# ./storm ui >> /dev/null & [4] 8076 [rootmaster bin]# jps 7930 nimbus 8076 core 3667 SecondaryNameNode 3480 NameNode 7626 Qu…

hadoop学习6 运行map reduce出错

1、一直处理running状态 2、 at com.sun.proxy.$Proxy14.submitApplication(Unknown Source) at org.apache.hadoop.yarn.client.api.impl.YarnClientImpl.submitApplication(YarnClientImpl.java:253) at org.apache.hadoop.mapred.ResourceMgrDelegate.submitApplication(Re…

kafka学习-环境搭建

1、几行命令 ./kafka-console-consumer.sh --zookeeper 192.168.86.133:2181,192.168.86.132:2181,192.168.86.134:2181 --topic shuaige --from-beginning ./kafka-console-producer.sh --broker-list 192.168.86.133:9092,192.168.86.132:9092,192.168.86.134:9092 --topic…

java基础之HashTable和HashMap的区别

1、类继承关系 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, java.io.Serializable …

java基础之ConcurrentHashMap

1、基础不牢固&#xff0c;请问接口里面怎么有方法&#xff1f; 这个和一般的方法有啥区别&#xff1f; public interface ConcurrentMap<K, V> extends Map<K, V> {/*** {inheritDoc}** implNote This implementation assumes that the ConcurrentMap cannot* con…

java基础之java内存模型

1、原子性 问题&#xff1a;i是原子性没&#xff1f; 不是&#xff01; 我理解原子性是针对计算机指令而言的&#xff0c;i包含读、加和写操作&#xff0c;包含三指令&#xff01; 除此之外&#xff0c;32位计算机读取64位的也不是原子性&#xff01; 2、有序性 并发时 可能…

Java基础之GC回收

非常好的文章&#xff0c;说明了GC的深入的东西 力荐&#xff01; GC是如何判断一个对象为"垃圾"的&#xff1f;被GC判断为"垃圾"的对象一定会被回收吗&#xff1f; http://blog.csdn.net/canot/article/details/51037938 JVM垃圾回收GC原理http://bl…

Eureka源码分析

Eureka源码分析 Eureka server入口: Spring.factories PS: 意味着如果加载EurekaServerAutoConfiguration成功,需要 ConditionalOnBean(EurekaServerMarkerConfiguration.Marker.class)需加载成功. 通过Bean注入了很多类 本质上, eureka-server包含很多事件: EurekaInstanceC…

matlab程序中,如何解决矢量长度必须相同的问题

主要原因就是画图的x和y长度不一样&#xff0c;我用一个例子说明。 问题代码&#xff1a; clear all;close all;clc;x 0 : 1: 9;y sin(x);n 2*length(x);yi interpft(y, n);xi 0 : 0.5 : 10;hold on ;plot(x, y ,ro);plot(xi, yi, b.-);plot(x, sin(x),m--);legend(原始…