标签归档:Soft

解决win10/Office2016/Onedrive/上载中心经常冲突的问题

一直想要关闭win10的office上载中心,查阅网上方法,发现大家都推荐如下方法:

  • 在桌面找到“此电脑”,右键点击“管理”;
  • 点击“系统工具“下的”任务计划程序“
  • 然后在”计划任务库“里找到“MicrosoftOffice 15 SyncMaintenance”并右键,点击禁用即可

实际这样操作了一次,发现在”计划任务库“里根本没有“MicrosoftOffice 15 SyncMaintenance”的存在!这是因为office2016的上载中心根本没启动项,无从禁用启动!

在Win10系统+Office2016环境下,OneDrive和上载中心都会向OneDrive云空间上传文件,经常发生冲突(上载中心显示上载错误),会严重拖累程序运行缓慢
解决win10/Office2016/Onedrive/上载中心经常冲突的问题

目前找到的唯一解决方案为:在OneDrive设置里Office项,去掉使用Office选项卡中的2个勾
解决win10/Office2016/Onedrive/上载中心经常冲突的问题

到底该如何入门Keras、Theano呢?(浅谈)

目前刚刚开始学习Theano,可以说是一头雾水,后来发现Keras是对Theano进行了包装,直接使用Keras可以减少很多细节程序的书写,它是模块儿化的,使用比较方便,但更为细节的内容,还没有理解,目前只是能够跑起Keras自带的例子

Keras的相关网站:Keras GitKeras Document

 

为了能够看懂Keras代码,需要的前序知识应该有:numpy、scikit-learnTheano

 

发现了两本还不错的Numpy的中文教程,说实话,看英文教程难道还是挺大的,英文太烂

NumPy攻略  Python科学计算与数据分析 [(印尼)IvanIdris著;张崇明译][人民邮电出版社][2013.10][174页](密码: ascg)

用Python做科学计算 中文版 (密码: jimb)

 

 

Keras自带的各种例examples还是很给力的

 

Keras如何构造简单的CNN网络

1. 导入各种模块

基本形式为:

import 模块名

from 某个文件 import 某个模块

 

2. 导入数据(以两类分类问题为例,即numClass = 2)

训练集数据data

Keras如何构造简单的CNN网络

可以看到,data是一个四维的ndarray

Keras如何构造简单的CNN网络

Keras如何构造简单的CNN网络

 

训练集的标签

Keras如何构造简单的CNN网络

Keras如何构造简单的CNN网络

 

3. 将导入的数据转化我keras可以接受的数据格式 

keras要求的label格式应该为binary class matrices,所以,需要对输入的label数据进行转化,利用keras提高的to_categorical函数

label = np_utils.to_categorical(label, numClass

此时的label变为了如下形式 

Keras如何构造简单的CNN网络

(注:PyCharm无法显示那么多的数据,所以下面才只显示了1000个数据,实际上该例子所示的数据集有1223个数据)

Keras如何构造简单的CNN网络  Keras如何构造简单的CNN网络

4. 建立CNN模型

以下图所示的CNN网络为例

Keras如何构造简单的CNN网络

#生成一个model
model = Sequential()

#layer1-conv1
model.add(Convolution2D(16, 3, 3, border_mode='valid',input_shape=data.shape[-3:]))
model.add(Activation('tanh'))#tanh

# layer2-conv2
model.add(Convolution2D(32, 3, 3, border_mode='valid'))
model.add(Activation('tanh'))#tanh

# layer3-conv3
model.add(Convolution2D(32, 3, 3, border_mode='valid'))
model.add(Activation('tanh'))#tanh

# layer4
model.add(Flatten())
model.add(Dense(128, init='normal'))
model.add(Activation('tanh'))#tanh

# layer5-fully connect
model.add(Dense(numClass, init='normal')) 
model.add(Activation('softmax'))

#  
sgd = SGD(l2=0.1,lr=0.001, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd,class_mode="categorical")

5. 开始训练model

利用model.train_on_batch或者model.fit

  

theano安装(一)windows配置安装theano环境(非GPU版)、keras


本文目录

本文主要记录如何配置theano环境,由于本机没有gpu,所以配置的是非gpu版本的theano(安装成功后,有时对python的各种库进行更新时,可能会导致某个模块无法调用其他被更新的模块,此时,最简单傻瓜的方法就是把所有环境重新配置一次)

1.安装python

按照win7系统安装python方法按照python

2.安装theano 并配置与theano相关的环境变量

(1)安装theano
打开cmd,输入“ pip install theano”
注:pip是安装python库的一个小工具

(2)配置与theano相关的环境变量
新建环境变量pythonpath,变量值为:C:/Anaconda2/Lib/site-packages/theano;

(3)测试theano是否安装成功:import theano,未报错,theano安装成功
(4)注意事项
– 注1:后来几次安装都没有配置该环境,但并不影响theano的使用
– 注2:安装完成后,在Anaconda的/Lib/site-packages目录下会出现theano和Theano-0.7.0-py2.7.egg-info两个文件夹。

(5)安装theano的另外一种方法
在github上下载theano,用命令行进入theano文件夹,用Python命令安装theano:

python setup.py install

(6)安装过程中的错误记录
① 错误一:
Command “python setup.py egg_info failed with error code in ………..”
theano安装(一)windows配置安装theano环境(非GPU版)、keras
到底什么原因也没有理解,但推测可能与之前安装了python有关,将按照anaconda之前安装的python卸载即可

② 问题二:
pip版本太旧,对其进行更新即可,方法:

python -m pip install --upgrade pip

theano安装(一)windows配置安装theano环境(非GPU版)、keras

③ 错误三:
需要安装microsoft office vs2008
如果不想按照vs2008,可以直接安装Micorsoft Visual C++ Compiler for Python 2.7 (原来,python的扩展包需要C来编译!)
下载后,重新安装numpy (即cd到numpy目录,然后,python setup.py install),此时,numpy安装成功,错误四解决
theano安装(一)windows配置安装theano环境(非GPU版)、keras

3. 安装keras

列表内容

方法一:
首先,在github上下载keras
然后,在cmd中进入下载keras的文件夹,然后利用 python setup.py install命令安装keras
方法二:
直接在cmd中:pip install keras

4. 如何查看是否使用了BLAS加速

进入python环境,输入如下命令,如果结果为False,证明BLAS加速成功
如果结果为True,证明使用的Python自己的方法,没有BLAS加速

import numpy 
id(numpy.dot) == id(numpy.core.multiarray.dot) 
  • 运行程序,出现AttributeError: ‘module’ object has no attribute ‘relu’错误,应该是theano版本过低导致,所以,更新theano:pip install –upgrade theano
    关于unix系统的python

caffe学习小问题(1):caffe中的Accuracy

今天才偶然发现,caffe在计算Accuravy时,利用的是最后一个全链接层的输出(不带有acitvation function),比如:alexnet的train_val.prototxt、caffenet的train_val.prototxt

下图是这两个网络训练配置文件(prototxt文件)计算Accuray的配置文件截图的截图(对于该部分,alexnet和caffenet是一致的)

  • 最后一个全连接层
layer {
  name: "fc8"
  type: "InnerProduct"
  bottom: "fc7"
  top: "fc8"
  param {
    lr_mult: 1
    decay_mult: 1
  }
  param {
    lr_mult: 2
    decay_mult: 0
  }
  inner_product_param {
    num_output: 1000
    weight_filler {
      type: "gaussian"
      std: 0.01
    }
    bias_filler {
      type: "constant"
      value: 0
    }
  }
}
  • 计算Accuracy
layer {
  name: "accuracy"
  type: "Accuracy"
  bottom: "fc8"
  bottom: "label"
  top: "accuracy"
  include {
    phase: TEST
  }
}

可以看到,caffe中计算Accuracy时,是通过比较最后一个全连接层(神经元个数=类别数、但没有加入activation function)的输出和数据集的labels来得到的,计算过程在AccuracyLayer中实现

之前一直非常困惑,计算accuracy应该使用计算得到的labels与数据集真正的labels去做计算,为什么caffe的accuracy要将fc8接入Accuray层呢?通过简单查看AccuracyLayer的说明才发现,原来,在AccuracyLayer内部,实现了“利用fc8的输出得到数据集的预测labels”(数值最大的那个值得idnex就是样本的类别),那么,再与输入的数据集真实lebels作对比,就实现了accuray的计算!

实际上,如果仅仅是做预测,利用fc8的输出就够了(输出值最大的那个位置即为输入的label),该输出表示了输入的样本属于每一类的可能性大小,但并不是概率值;
如果为了使输出具有统计意义,需要加入softmax function,它只是使前面的全连接层的输出(fc8)具有了概率意义,并不改变这些输出之前的大小关系,因为softmax function本身就是增函数;
为了利用误差反向传播,还需要构造loss function,需要利用softmax function的输出,即需要利用输入样本属于每一类的概率值;

注意:

  • 最后一个全连接层(fc8)的输出值位于区间[,],它并不是概率值

  • fc8后面接的SoftmaxWithLoss层做的工作分2步

    • 第一步:对fc8的输出计算softmax function(结果为概率值)
    • 第二步:利用求得的概率值计算Loss值

安装visual studio 2012,并配置opencv

在同学的帮助下,终于成功配置了vs+opencv,将详细过程记录在此,方便以后查阅
参考1

本文目录


安装vs2012

1.下载vs2012安装包并双击进行安装

安装visual studio 2012,并配置opencv
安装visual studio 2012,并配置opencv

2.选择需要的功能,下面选择了所有的功能,也可以只选择部分功能,如果只需要用到C++,只安装用于C++的微软基础类就可以了
安装visual studio 2012,并配置opencv

3.安装进行中
安装visual studio 2012,并配置opencv
安装visual studio 2012,并配置opencv

4.终于安装完成
安装visual studio 2012,并配置opencv

5.点击启动
安装visual studio 2012,并配置opencv

提示输入产品秘钥
安装visual studio 2012,并配置opencv
YKCW6-BPFPF-BT8C9-7DCTH-QXGWC

激活成功
安装visual studio 2012,并配置opencv

6.出现其它配置页面
安装visual studio 2012,并配置opencv
这里选择C++为默认开发环境
安装visual studio 2012,并配置opencv

7.启动
安装visual studio 2012,并配置opencv

8.注意,本人在安装完vs2012后,出现了兼容性问题,如下图所示
安装visual studio 2012,并配置opencv
发现网络有文章说,这是因为本机同时安装了vs2010和vs2012导致的,需要安装一个更新包,按照其给出的链接,下载了该更新包,并安装:
安装visual studio 2012,并配置opencv
安装visual studio 2012,并配置opencv
安装visual studio 2012,并配置opencv
问题解决。


安装opencv

1.下载opencv源码

  • opencv官网地址:http://opencv.org/,网速有点小慢
    安装visual studio 2012,并配置opencv
  • 点击Download,在弹出的新页面中选择需要下载的opencv版本,这里选择2.4.9
    安装visual studio 2012,并配置opencv
  • 开始下载
    安装visual studio 2012,并配置opencv
  • 大概349MB

2.解压源码

  • 解压路径任意
    安装visual studio 2012,并配置opencv
  • 解压后的源码
    安装visual studio 2012,并配置opencv

3.为opencv配置环境变量
(1)计算机右键“属性”
(2)高级系统设置
(3)点击环境变量

(4)在名称为PATH的环境变量中添加opencv的bin文件夹路径,具体地:
①32位系统,添加:D:/File Program/opencv/build/x86/vc11/bin
②64位系统,添加:
opencv_root/build/x86/vc11/bin(D:/File Program/opencv/build/x86/vc11/bin) (对应于32位系统)
opencv_root/build/x64/vc11/bin(D:/File Program/opencv/build/x64/vc11/bin) (对应于64位系统)
目的是为了可以在编译器Win32和X64中来回切换,其实就是为了使编译可以找到32位的dll,也可以找到64位的dll

  • 注1:D:/File Program/opencv为opencv的解压路径
  • 注2:vc11表示编译环境为Microsoft Visual Studio 2012;
  • 注3:

    vc10 = Visual Studio 2010
    vc11 = Visual Studio 2012
    vc12 = Visual Studio 2013

(5)关于opencv的解压文件
opencv安装后(其实就是解压缩),得到一个名称为opencv的文件夹,该文件夹下有两个子文件件:

  • source:opencv的源代码(opencv是开源的),下面的build文件夹下的各种库就是在这些源代码的基础上利用cMake得到的
    安装visual studio 2012,并配置opencv

    • 该文件夹下有一个modules的文件夹,存放的是各个领域的源代码
  • build:存放的opencv预编译好的各种库,对于使用opencv的使用者来说,只使用该文件夹就够了,不需要自己利用opencv的源代码重新编译得到这些库
    安装visual studio 2012,并配置opencv

    • opencv提供两种库:DLL(动态链接库)和lib库(静态链接库)
      • DLL:假设某个程序调用了DLL,那么生成该程序时,被调用的DLL并不会被整合到生成的.exe文件,只有后续在执行.exe文件时,.exe文件才会调用这些DLL,也就是说,生成的.exe文件需要运行在具有这些DLL文件的机器上,它的好处就是可以使.exe文件比较小
      • lib:在对程序进行生成时,lib库会被build-in到.exe文件中,这样就会使得生成的.exe文件比较大,但.exe文件在执行时,就不需要再外调其他库了,同时,用户也无法对.exe进行任何更改
      • 在使用opencv时,DLL和lib两种库都是被提供的,编程者可以自己选择使用哪种库

在vs2012中配置opencv

在利用vs2012生成调用了opencv的程序时,必须要做的是两件事:

  • 告诉compiler,opencv的库到底长什么样子,也就是,配置include路径
  • 告诉linker去哪里找到opencv的库(lib或者是dll)

下面是详细的设置方法:

1.打开vs2012
2.新建win32控制台应用程序
安装visual studio 2012,并配置opencv
安装visual studio 2012,并配置opencv
安装visual studio 2012,并配置opencv
3.在解决方案资源管理器处:源文件->添加->新建项
安装visual studio 2012,并配置opencv
安装visual studio 2012,并配置opencv
4.在属性管理器处进行配置
(在属性管理器中进行一次配置,就相当于进行了通用的配置过程,以后新建的工程就不用再额外的进行重新配置了)
(1)视图->属性管理器
安装visual studio 2012,并配置opencv
(2)弹出了属性管理器
安装visual studio 2012,并配置opencv
(3)配置Debug Win32
注:这里讨论的是Debug,Release的配置完全类似

  • 在Debug | Win32处的Microsoft.Cpp.Win32.user右键“属性”
    安装visual studio 2012,并配置opencv
  • 弹出Microsoft.Cpp.Win32.user属性页
    安装visual studio 2012,并配置opencv
    (4)开始配置Microsoft.Cpp.Win32.user属性页
    ① 添加包含目录,从而,C++程序可以include opencv(设置VC++目录):

    • 在弹出的属性页中,找到”VC++目录“,在对应的右侧包含目录中,输入opencv的build->include目录
      安装visual studio 2012,并配置opencv
    • 可以看到,opencv->build->include目录下有两个文件夹,应该将该大目录和两个文件夹目录都加入到include目录下
      安装visual studio 2012,并配置opencv
    • 即将如下三个目录都添加到包含目录中

      • opencv_root/build/include(D:/File Program/opencv/build/include)
      • opencv_root/build/include/opencv(D:/File Program/opencv/build/include/opencv)
      • opencv_root/build/include/opencv2(D:/File Program/opencv/build/include/opencv2
        安装visual studio 2012,并配置opencv
    • 关于“Visual Studio 2010项目属性页中“VC++ 目录” ,利用VC+++目录,可以指定如下的目录:

      • 可执行目录:搜索可执行文件的目录。对应于 PATH 环境变量。
      • 包含目录:搜索在源代码中引用的包含文件的目录。对应于 INCLUDE 环境变量。
      • 引用目录:搜索通过 #using 指令在源代码中引用的程序集和模块(元数据)文件的目录。对应于 LIBPATH 环境变量
      • 库目录:搜索库(包括运行时库)的目录。对应于 LIB 环境变量。
      • 源目录:搜索用于 IntelliSense 的源文件的目录。
      • 排除目录:检查生成依赖项时,不会搜索目录。
        安装visual studio 2012,并配置opencv

②添加库目录(即静态链接库的位置)(设置VC++目录)

  • 仍旧在刚刚的VC++目录右侧,在库目录中添加opencv->build->x86->vc11->lib路径
    即:D:/File Program/opencv/build/x86/vc11/lib
    安装visual studio 2012,并配置opencv
  • 注意:这里都是用x64还是x86取决与编译器(而不是操作系统!)
  • 如下图所示,编译器为Win32,那么,就应该选择x86目录下的库
    安装visual studio 2012,并配置opencv

③添加链接库(即动态链接库的名称)(设置连接器)

  • 在“Microsoft.Cpp.Win32.user属性页”的链接器->输入的右侧找到附加依赖项
    安装visual studio 2012,并配置opencv

  • 添加如下dll名称(2.4.9版本-Debug对应的opencv中的动态链接库)(这里只需要指出dll的名称,而不需要指出路径,这是因为存放这些dll文件的路径已经在安装完opencv后,手动添加到了环境变量PATH中了)

    opencv_ml249d.lib
    opencv_calib3d249d.lib
    opencv_contrib249d.lib
    opencv_core249d.lib
    opencv_features2d249d.lib
    opencv_flann249d.lib
    opencv_gpu249d.lib
    opencv_highgui249d.lib
    opencv_imgproc249d.lib
    opencv_legacy249d.lib
    opencv_objdetect249d.lib
    opencv_ts249d.lib
    opencv_video249d.lib
    opencv_nonfree249d.lib
    opencv_ocl249d.lib
    opencv_photo249d.lib
    opencv_stitching249d.lib
    opencv_superres249d.lib
    opencv_videostab249d.lib

    安装visual studio 2012,并配置opencv

  • 注:如果配置的是Release | Win32,那么,需要添加的是如下19个不带d的release版

    opencv_objdetect249.lib
    opencv_ts249.lib
    opencv_video249.lib
    opencv_nonfree249.lib
    opencv_ocl249.lib
    opencv_photo249.lib
    opencv_stitching249.lib
    opencv_superres249.lib
    opencv_videostab249.lib
    opencv_calib3d249.lib
    opencv_contrib249.lib
    opencv_core249.lib
    opencv_features2d249.lib
    opencv_flann249.lib
    opencv_gpu249.lib
    opencv_highgui249.lib
    opencv_imgproc249.lib
    opencv_legacy249.lib
    opencv_ml249.lib

  • 另外,对于opencv2.4.8

    Debug版
    opencv_ml248d.lib
    opencv_calib3d248d.lib
    opencv_contrib248d.lib
    opencv_core248d.lib
    opencv_features2d248d.lib
    opencv_flann248d.lib
    opencv_gpu248d.lib
    opencv_highgui248d.lib
    opencv_imgproc248d.lib
    opencv_legacy248d.lib
    opencv_objdetect248d.lib
    opencv_ts248d.lib
    opencv_video248d.lib
    opencv_nonfree248d.lib
    opencv_ocl248d.lib
    opencv_photo248d.lib
    opencv_stitching248d.lib
    opencv_superres248d.lib
    opencv_videostab248d.lib

  • opencv2.4.8-Release版

    opencv_objdetect248.lib
    opencv_ts248.lib
    opencv_video248.lib
    opencv_nonfree248.lib
    opencv_ocl248.lib
    opencv_photo248.lib
    opencv_stitching248.lib
    opencv_superres248.lib
    opencv_videostab248.lib
    opencv_calib3d248.lib
    opencv_contrib248.lib
    opencv_core248.lib
    opencv_features2d248.lib
    opencv_flann248.lib
    opencv_gpu248.lib
    opencv_highgui248.lib
    opencv_imgproc248.lib
    opencv_legacy248.lib
    opencv_ml248.lib


测试opencv是否配置成功

新建空白win32控制台应用程序
在项目中添加一个cpp,在cpp中输入如下代码
注:一定要保证项目路径下由pic图像!
或者是直接给出图像的绝对路径(这样可以避免路径错误)

#include<iostream>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  


using namespace cv;  


int main()  
{  
    // 读入一张图片(游戏原画)  
    Mat img=imread("pic.jpg");  
    // 创建一个名为 "游戏原画"窗口  
    cvNamedWindow("游戏原画");  
    // 在窗口中显示游戏原画  
    imshow("游戏原画",img);  
    // 等待6000 ms后窗口自动关闭  
    waitKey(6000);  
}  

安装visual studio 2012,并配置opencv

(1)编译
成功,没有编译错误
安装visual studio 2012,并配置opencv

(2)运行程序,成功显示图像
安装visual studio 2012,并配置opencv

注1:如果路径下没有要操作的图像,会出现如下错误
安装visual studio 2012,并配置opencv

注2:如果出现“无法启动应用程序,计算机丢失…….dll文件”的错误,应该就是opencv-dll路径的问题,因为应用程序无法找到它所需要的dll文件,这个时候需要检查一下dll的路径,或者检查设置的dll路径下是否有该dll文件的存在,如果dll路径是在vs开启后修改的,那么,现就该完dll路径后,记得重启一下vs

关于visual studio的解决方案

  • 在visual studio中新建立一个项目project1,该项目属于了一个解决方案,例如,该解决方案的名称为test
  • 在解决方案的路径下(该解决方案的路径名称为test)会有一个test.sln文件、一个SQL文件和一个project1文件夹
    安装visual studio 2012,并配置opencv
  • 想要打开test解决方案时,直接双加test.sln文件或者通过visual studio打开test.sln文件即可
  • 实际上,test.sln是一个解决方案文件,它可以用文本编辑器打开,它包含了与该解决方案相关的一系列内容,例如

    • Microsoft Visual Studio Solution File:用来说明解决方案文件的版本号,12.00 说明是 VS2013 的解决方案文件。
    • VisualStudioVersion:打开这个解决方案文件需要的 Visual Studio 版本号
    • MinimumVisualStudioVersion:能够打开这个解决方案的最低 Visual Studio 版本号
    • Project:解决方案中包含若干个项目,每个项目有一个 Project 的说明,格式为
      Project(项目在解决方案中的编号)=显示名称, 实际路径, 项目唯一标识 ) EndProject
      ,具体见下面的例子

      • 项目唯一标识来自项目文件,在 项目名称.csproj 文件中可以找到如下说明
        安装visual studio 2012,并配置opencv
    • Global:……

    安装visual studio 2012,并配置opencv

下图是“盗用”的他人的一幅解决方案结构图
来自:http://blog.csdn.net/yyhero1/article/details/19272637
安装visual studio 2012,并配置opencv

windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

经过朋友指导,终于成功在windows7上成功编译了caffe,这里将编译过程记录

1. 安装文件准备

1.1 visual studio 2013安装包下载

  • 进入visual studio下载页
  • 选择Visual Studio 2013–>Ultimate 2013版–>简体中文iso文件–>下载
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

1.2 CUDA7.5 (optional)

如果不需要cuda版本的caffe,本步跳过

1.3 windows版本caffe

1.4 下载cuDNN (optional)

  • 如果不需要配置cuDNN,该步请跳过
  • nVidia官网下载cuDNN v3或者是cuDNN v4,注意,需要注册才能下载
    下载后解压缩,如下图所示
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

1.5 下载Anaconda安装包 (optional)

  • 该安装包是用来安装python的,从而可以配置pycaffe
  • 这里选择的是利用Anaconda的方法按照python,所以才需要下载Anaconda安装包,当然,也可以按照其他的方法安装
  • 如果不需要配置pycaffe,该步请跳过
  • 一般情况下,可能大家的机器上都已经安装了python,那么,也请跳过该步
  • Anaconda安装包下载地址:https://www.continuum.io/downloads

1.6 下载Matlab安装包 (optional)

  • 该安装包是用来安装matlab的,从而可以配置matcaffe
  • 如果不需要配置matcaffe ,该步请跳过
  • 一般情况下,可能大家的机器上都已经安装了matlab,那么,也请跳过该步
  • matlab下载地址这里就不列出了,请自行寻找

2.安装visual studio 2013

具体安装方法见: 安装visual studio 2013

3.安装cuda7.5 (optional)

4. 利用Anaconda安装python (optional)

如果你的本机没有安装python,并且你需要配置pycaffe,那么,请按照win7系统安装python,并按照Pycharm集成开发环境安装python

安装完python后,再安装一下protobuf,因为后面编译pycaffe时有需要:

  • 利用pip工具安装protobuf:pip install protobuf
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

5. 安装matlab (optional)

如果你的本机没有安装matlab ,并且你需要配置matcaffe,那么,请安装matlab,具体安装方法请自行查阅

6.修改配置文件

在github上下载的window caffe把呢你自带一个配置文件的例子,在进行编译之前,需要先更改该文件内容

6.1 解压缩下载的caffe-windows文件

这里假设caffe-windows被解压到了如下的文件夹中
windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

6.2 进入到windows文件夹

windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

6.3 复制配置文件,并重命名

将该文件夹(即./windows)下的CommonSettings.props.example文件复制一份儿,并将复制的文件命名为CommonSettings.props
windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

6.4 修改配置文件(修改工程的属性文件)

6.4.1 配置文件说明

  • caffe-windows自带的配置文件CommonSettings.props.example中与我们后面要进行的编译密切相关的就是如下部分
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

  • 例子中所有配置参数都是默认值

  • CpuOnlyBuild:是否使用CPU

    • 默认值为False(即使用GPU编译)
    • 如果本机没有配置好CUDA,那么,该值应该赋值为True;
    • 如果本机已经配置好CUDA,并且需要编译CUDA版本的caffe,那么,该值应该赋值为True、
  • UseCuDNN:是否使用CuDNN

    • 默认值为True;
    • 如果本机没有配置好CUDA,那么,该值应该赋值为False;
    • 注意:CpuOnlyBuild和CuDNN不能同时为True;
    • 如果这里设置为True,那么还需要对<CuDnnPath></CuDnnPath>赋值,即下载的CuDNN的路径
  • CudaVersion:CUDA的版本

  • PythonSupport:是否支持python

    • 默认值为False,即后续不编译pycaffe;
    • 如果需要编译pycaffe,那么该值设置为True
    • 如果这里设置为true,那么还需要对 <PythonDir>C:/Miniconda2/</PythonDir>赋值
      • 上面的值是默认的,应该修改为本机的python安装路径,也就是python.exe所在路径,例如,本机是利用Anaconda安装的python,路径如下:D:/program file/Anaconda2 ,那么,应该令 <PythonDir>D:/program file/Anaconda2</PythonDir>
        windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
  • MatlabSupport:是否支持matlab

    • 默认值为False;
    • 如果需要编译matcaffe,那么该值设置为True
    • 如果该值设置为true,那么还需要对<MatlabDir>C:/Program Files/MATLAB/R2014b</MatlabDir>进行赋值:
      • 上面的路径是默认的,需要更改为本机的matlab安装目录,例如,本机的matlab安装路径如下:D:/Program Files/MATLAB/R2014b,那么,<MatlabDir>D:/Program Files/MATLAB/R2014b</MatlabDir>
        windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

6.4.2 非CUDA版本的caffe

配置文件部分设置如下:

    <PropertyGroup Label="UserMacros">
        <BuildDir>$(SolutionDir)../Build</BuildDir>
        <!--NOTE: CpuOnlyBuild and UseCuDNN flags can't be set at the same time.-->
        <CpuOnlyBuild>true</CpuOnlyBuild>
        <UseCuDNN>false</UseCuDNN>
        <CudaVersion>7.5</CudaVersion>
        <!-- NOTE: If Python support is enabled, PythonDir (below) needs to be
         set to the root of your Python installation. If your Python installation
         does not contain debug libraries, debug build will not work. -->
        <PythonSupport>false</PythonSupport>
        <!-- NOTE: If Matlab support is enabled, MatlabDir (below) needs to be
         set to the root of your Matlab installation. -->
        <MatlabSupport>false</MatlabSupport>
        <CudaDependencies></CudaDependencies>

        <!-- Set CUDA architecture suitable for your GPU.
         Setting proper architecture is important to mimize your run and compile time. -->
        <CudaArchitecture>compute_35,sm_35;compute_52,sm_52</CudaArchitecture>

        <!-- CuDNN 3 and 4 are supported -->
        <CuDnnPath></CuDnnPath>
        <ScriptsDir>$(SolutionDir)/scripts</ScriptsDir>
    </PropertyGroup>
    <PropertyGroup Condition="'$(CpuOnlyBuild)'=='false'">
        <CudaDependencies>cublas.lib;cuda.lib;curand.lib;cudart.lib</CudaDependencies>
    </PropertyGroup>

    <PropertyGroup Condition="'$(UseCuDNN)'=='true'">
        <CudaDependencies>cudnn.lib;$(CudaDependencies)</CudaDependencies>
    </PropertyGroup>
    <PropertyGroup Condition="'$(UseCuDNN)'=='true' And $(CuDnnPath)!=''">
        <LibraryPath>$(CuDnnPath)/cuda/lib/x64;$(LibraryPath)</LibraryPath>
        <IncludePath>$(CuDnnPath)/cuda/include;$(IncludePath)</IncludePath>
    </PropertyGroup>

    <PropertyGroup>
        <OutDir>$(BuildDir)/$(Platform)/$(Configuration)/</OutDir>
        <IntDir>$(BuildDir)/Int/$(ProjectName)/$(Platform)/$(Configuration)/</IntDir>
    </PropertyGroup>
    <PropertyGroup>
        <LibraryPath>$(OutDir);$(CUDA_PATH)/lib/$(Platform);$(LibraryPath)</LibraryPath>
        <IncludePath>$(SolutionDir)../include;$(SolutionDir)../include/caffe/proto;$(CUDA_PATH)/include;$(IncludePath)</IncludePath>
    </PropertyGroup>
    <PropertyGroup Condition="'$(PythonSupport)'=='true'">
        <PythonDir>C:/Miniconda2/</PythonDir>
        <LibraryPath>$(PythonDir)/libs;$(LibraryPath)</LibraryPath>
        <IncludePath>$(PythonDir)/include;$(IncludePath)</IncludePath>
    </PropertyGroup>
    <PropertyGroup Condition="'$(MatlabSupport)'=='true'">
        <MatlabDir>C:/Program Files/MATLAB/R2014b</MatlabDir>
        <LibraryPath>$(MatlabDir)/extern/lib/win64/microsoft;$(LibraryPath)</LibraryPath>
        <IncludePath>$(MatlabDir)/extern/include;$(IncludePath)</IncludePath>
    </PropertyGroup>

6.4.3 CUDA版本的caffe

配置文件部分设置如下:

    <PropertyGroup Label="UserMacros">
        <BuildDir>$(SolutionDir)../Build</BuildDir>
        <!--NOTE: CpuOnlyBuild and UseCuDNN flags can't be set at the same time.-->
        <CpuOnlyBuild>false</CpuOnlyBuild>
        <UseCuDNN>ture</UseCuDNN>
        <CudaVersion>7.5</CudaVersion>
        <!-- NOTE: If Python support is enabled, PythonDir (below) needs to be
         set to the root of your Python installation. If your Python installation
         does not contain debug libraries, debug build will not work. -->
        <PythonSupport>true</PythonSupport>
        <!-- NOTE: If Matlab support is enabled, MatlabDir (below) needs to be
         set to the root of your Matlab installation. -->
        <MatlabSupport>true</MatlabSupport>
        <CudaDependencies></CudaDependencies>

        <!-- Set CUDA architecture suitable for your GPU.
         Setting proper architecture is important to mimize your run and compile time. -->
        <CudaArchitecture>compute_35,sm_35;compute_52,sm_52</CudaArchitecture>

        <!-- CuDNN 3 and 4 are supported -->
        <CuDnnPath>D:/software/caffe-vs/cuda-cuDNN</CuDnnPath>
        <ScriptsDir>$(SolutionDir)/scripts</ScriptsDir>
    </PropertyGroup>
    <PropertyGroup Condition="'$(CpuOnlyBuild)'=='false'">
        <CudaDependencies>cublas.lib;cuda.lib;curand.lib;cudart.lib</CudaDependencies>
    </PropertyGroup>

    <PropertyGroup Condition="'$(UseCuDNN)'=='true'">
        <CudaDependencies>cudnn.lib;$(CudaDependencies)</CudaDependencies>
    </PropertyGroup>
    <PropertyGroup Condition="'$(UseCuDNN)'=='true' And $(CuDnnPath)!=''">
        <LibraryPath>$(CuDnnPath)/cuda/lib/x64;$(LibraryPath)</LibraryPath>
        <IncludePath>$(CuDnnPath)/cuda/include;$(IncludePath)</IncludePath>
    </PropertyGroup>

    <PropertyGroup>
        <OutDir>$(BuildDir)/$(Platform)/$(Configuration)/</OutDir>
        <IntDir>$(BuildDir)/Int/$(ProjectName)/$(Platform)/$(Configuration)/</IntDir>
    </PropertyGroup>
    <PropertyGroup>
        <LibraryPath>$(OutDir);$(CUDA_PATH)/lib/$(Platform);$(LibraryPath)</LibraryPath>
        <IncludePath>$(SolutionDir)../include;$(SolutionDir)../include/caffe/proto;$(CUDA_PATH)/include;$(IncludePath)</IncludePath>
    </PropertyGroup>
    <PropertyGroup Condition="'$(PythonSupport)'=='true'">
        <PythonDir>D:/File Program/Anaconda/</PythonDir>
        <LibraryPath>$(PythonDir)/libs;$(LibraryPath)</LibraryPath>
        <IncludePath>$(PythonDir)/include;$(IncludePath)</IncludePath>
    </PropertyGroup>
    <PropertyGroup Condition="'$(MatlabSupport)'=='true'">
        <MatlabDir>D:/File Program/Matlab/</MatlabDir>
        <LibraryPath>$(MatlabDir)/extern/lib/win64/microsoft;$(LibraryPath)</LibraryPath>
        <IncludePath>$(MatlabDir)/extern/include;$(IncludePath)</IncludePath>
    </PropertyGroup>

注:事实上,对cuDNN路径的配置有两种方案:
– 方案1:将cuDNN v4的压缩包内的bin、include、lib中的文件分别放置在%CUDA_PATH% (即cuda的安装路径)的相应目录中
– 方案2:将 ./windows/CommonSettings.props文件中的CuDnnPath设置为该解压缩路径,例如,将cuDNN解压后文件放置在D:/software/caffe-vs/cuda-cuDNN中,那么,在CommonSettings.props中,令<CuDnnPath>D:/software/caffe-vs/cuda-cuDNN/</CuDnnPath>,即上面提到的方法

7 编译caffe

7.1 打开名称为Caffe的解决方案

利用VS2013打开名称为Caffe的解决方案
windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

7.2 编译libcaffe项目

  • 首先编译libcaffe项目(其他的项目依赖于libcaffe项目)

  • 右键libcaffe,选择生成,开始编译libcaffe
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

  • 还原NuGet包,即从网络下载编译需要的各种依赖包
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

  • 经过一段时间等待后,编译成功
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

  • 这里有两个需要注意的地方:
    (1)编译过程中,可能会出现错误
    error C2220: 警告被视为错误 - 没有生成“object”文件
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
    错误的原因是编译过程中出现了警告,而导致编译无法进行,此时,需要进行如下修改:
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
    即:设置项目属性,不要将警告视为错误
    右键->项目属性->C/C++->常规->将警告视为错误 设为否
    另外,有一次在另外一个机器上出现了同样的问题,但按照上述方法却未解决,是因为文件的代码页为英文,而我的系统中的代码页为中文,解决方案:利用VS打开出错的文件->重新保存->重启vs->重新编译libcaffe->问题解决。
    (2)caffe编译过程中,需要一些依赖包,在有网络的情况下,当编译第一个项目libcaffe时,程序会自动从网路下载这些依赖包,下载到与caffe-windows文件夹同级的NugetPackages文件夹中,下图所示即为程序自动下载的依赖包
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
    但在没有网络情况下,需要事先将这些依赖包下载好,并将它们的路径在vs的管理NuGet程序包中进行设置:工具->选项->NuGet Package Manager->程序包源->利用右侧的加号添加本地的package
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
    手动添加这些package地址后,还需要手动对这些NuGet Package进行安装
    (3)另外,第二次编译过程出现如下错误
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
    发现是下载的NegetPackages/glog.0.3.3.0下载缺少两个文件:

    • glog.overlay-x64_v120_Release_dynamic.0.3.3.0
    • glog.overlay-x64_v120_Debug_dynamic.0.3.3.0
      将第一次下载得到的这两个文件放入该文件夹,问题解决
      注:这里的“第一次下载得到的这两个文件”是指NugetPackages中的glog.0.3.3.0文件夹下的两个文件,见下图
      windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

7.3 编译caffe项目

同样,在caffe项目处右键生成

7.4 编译pycaffe

直接在项目pycaffe右键,点击生成即可

7.5 编译matcaffe

直接在项目matcaffe右键,点击生成即可

  • 第二次在编译matcaffe时,出现如下错误:
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

    • 即编译matcaffe提示说找不到mex.h
    • 将matlab_root/extend/include目录添加到matcaffe项目的include目录中,问题解决
  • 上面这个问题解决后,又出现了另外一个错误
    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

    • 即链接器找不到libmx.lib(matlab的静态链接库),查看VC++库目录,没有发现设置问题
      windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
    • 不知道为什么会这样, 想了一个临时的解决方便,将matlab安装路径下的/extern/lib/win64/microsoft添加到matcaffe项目->链接器->常规->附加目录中,然后再次编译,成功;这是因为编译程序无法找到matlab的相关静态链接库的原因;
  • 后来经过仔细查询,发现,原来是因为配置文件CommonSettings中的matlabDir不小心填写错误了,才会导致上面两个问题!将此处改正,上面2个问题成功解决,matcaffe编译成功

    <PropertyGroup Condition="'$(MatlabSupport)'=='true'">
        <MatlabDir>D:/Program Files/MATLAB/R2014b</MatlabDir>
        <LibraryPath>$(MatlabDir)/extern/lib/win64/microsoft;$(LibraryPath)</LibraryPath>
        <IncludePath>$(MatlabDir)/extern/include;$(IncludePath)</IncludePath>
    </PropertyGroup>

windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

7.6 编译其他项目

接下来,再依次编译其他项目,同样的方法

  • classification:用来分类
  • compute_image_mean:计算均值
  • convert_cifar_dat:对cifat数据集进行转换
  • convert_mnist_data:对mnist数据集进行转换

8.运行第一个caffe测试程序

为了测试编译好的caffe能否正常使用,需要进行测试,主要利用mnist数据集进行分类问题的测试

(1)下载测试数据集
windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

(2)修改配置文件
进入文件夹D:/software/caffe-vs/caffe-windows/examples/mnist,即examples路径下的mnist文件夹
windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
① 打开lenet_solver.prototxt
设置网络配置文件路径,这里使用了绝对路径,相对路径还没有尝试
windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
② 打开lenet_train_test.prototxt
windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
(3)运行caffe程序,具体地
① 打开cmd命令行,cd到caffe-windows的./Build/x64/Debug路径下,在该路径下,可以直接执行caffe.exe
D:/software/caffe-vs/caffe-windows/Build/x64/Debug
windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
或者,为了方便,可以将caffe的路径添加到环境变量Path中,这样,cmd就可以直接识别caffe命令了
windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe

② 运行caffe

caffe train -solver lenet_solver.prototxt

注意,因为上一步已经将D:/software/caffe-vs/caffe-windows/Build/x64/Debug路径添加到环境变量PATH中了,所以,这里可以直接使用caffe.exe


下面两步主要配置cuDnn、python和matlab,具体配置时,应该在4.5之前进行

9. 配置python (optional)

如果已经编译好pycaffe,那么,为了能够在python使用caffe,还需要在python中进行一些相关配置

  • 添加环境变量
    • 在环境变量的用户变量中,新建用户变量,变量名“PythonPath”,变量值“caffe_root/Build/x64/Release/pycaffe”
    • 或者将文件夹/Build/x64/Release/pycaffe/caffe 复制到/lib/site-packages.

10.配置matlab (optional)

如果已经编译好matcaffe,那么,为了能够在matlab使用caffe,还需要在matlab中进行一些相关配置

  • 添加环境变量

    • <caffe_root>/Build/x64/Release/matcaffe路径添加到matlab的搜索路径中
    • <caffe_root>/Build/x64/Release路径添加到环境变量PATH中

    After you have built solution with Matlab support, in order to use it you have to:

    add the generated matcaffe folder to Matlab search path, and
    add /Build/x64/Release to your system path.

    windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe


最后来张图

windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe


注:发现一篇写的比较好的博客
http://m.blog.csdn.net/article/details?id=50819464

Docker学习系列(一):windows下安装docker

本文目录如下:


windows下安装docker的方法应该参考docker官网,之前参考的是网上其他人翻译的博客,出了一些问题,后来发现,是由于docker更新速度较快,安装官网的方法最为妥当!

下面引用Docker 中文指南中的几个提示:

提示1:Docker 已经在windows7.1和windows 8上通过测试,当然它也可以在低版本的windows上使用。但是你的处理器必须支持硬件虚拟化。

提示2:Docker 引擎使用的是Linux内核特性,所以我们需要在 Windows 上使用一个轻量级的虚拟机 (VM) 来运行 Docker。我们使用 Windows的Docker客户端来控制 Docker 虚拟化引擎的构建、运行和管理 。

提示3:为了简化这个过程,我们设计了一个叫 Boot2Docker 的应用程序,你可以通过它来安装虚拟机和运行 Docker。

提示4:虽然你使用的是 Windows 的 Docker 客户端,但是 docker 引擎容器依然是运行在 Linux 宿主主机上(现在是通过Virtual box)。直到我们开发了 windows 版本的 Docker 引擎,你只需要在你的 Windows 主机上启动一个 Linux 容器。


参考Install Docker for Windows,即按照该网站的步骤一步步按照即可,该网站的教程非常详细

1.windows按照docker的基本要求

(1)64为操作系统,win7或者更高
(2)支持“ Hardware Virtualization Technology”,并且,“virtualization ”可用

2.具体安装步骤

即安装Docker Toolbox,同时还附加安装

  • Docker Client for Windows
  • Docker Toolbox management tool and ISO
  • Oracle VM VirtualBox
  • Git MSYS-git UNIX tools
    不用担心,下载的Docker Toolbox已经完全包含了这几个软件,直接安装就可以了

1.进入Docker Toolbox的下载网页,选择windows版本下载
Docker学习系列(一):windows下安装docker
2. 下载完成后,双击安装文件
3. 一路Next,接受所有默认安装
Docker学习系列(一):windows下安装docker
Docker学习系列(一):windows下安装docker
Docker学习系列(一):windows下安装docker
Docker学习系列(一):windows下安装docker
Docker学习系列(一):windows下安装docker
Docker学习系列(一):windows下安装docker

注意:在安装过程中,会出现几个其他的安装过程,如Ocracle Corporation等系列软件,全部选择安装即可,下面是几个小例子:
Docker学习系列(一):windows下安装docker
Docker学习系列(一):windows下安装docker
另外,如果你安装了360,它可能会阻止程序的安装,应该注意允许程序安装
Docker学习系列(一):windows下安装docker
4. 最后Finish
Docker学习系列(一):windows下安装docker
5. 整个安装过程非常简单,安装完成后,可以在桌面得到如下的三个图标:
Docker学习系列(一):windows下安装docker

3.开始使用

1.点击Docker Quickstart Terminal图标,从而打开一个Docker Toolbox terminal
Docker学习系列(一):windows下安装docker
– 打开terminal后,terminal会自动进行一些设置,需要点时间,全部完成后,会出现如下的结果
Docker学习系列(一):windows下安装docker
3.在$后输入各种docker命令就可以使用docker了
注:不需要像ubuntu中那样使用sudo!
例如:
(1)查看docker的版本信息

docker info

Docker学习系列(一):windows下安装docker
(2)登陆docker Hub的账号

docker login

然后,输入用户名和密码,例如
Docker学习系列(一):windows下安装docker
个人觉得:在使用docker时,是否登陆没有特别大的影响,只不过是,如果登陆了,就可以向docker hub上push自己的镜像了

4.安装远程连接工具连接docker

按照上面方法打开Docker Toolbox terminal后,发现在该终端中,无法进行复制、粘贴等操作,使用起来非常不方便,所以,这里参考zistxym的博文,安装远程连接工具SecureCRT

  • 下载SecureCRT
    地址:绿盟SecureCRT绿色版免安装,不知道为什么,有时这两个链接提示有病毒,所以,再提供一个百度云盘的链接,提取码:rm3g
  • 运行SecureCRT
    Docker学习系列(一):windows下安装docker
  • 连接docker
    Docker学习系列(一):windows下安装docker
    Docker学习系列(一):windows下安装docker
    注:默认的用户名和密码是: docker/tcuser

  • 使用SecureCRT即与使用Docker Quickstart Terminal的作用相同
    Docker学习系列(一):windows下安装docker
    Docker学习系列(一):windows下安装docker

    • 再使用SecureCRT连接docker时,必须要先启动Docker Quickstart Terminal
  • 关于SecureCRT的几点设置
    (1)使用中发现,secureCRT的鼠标右键功能默认是粘贴的功能,用起来和windows系统的风格不一致,如果要改为右键为弹出文本操作菜单功能,方便对选择的内容做拷贝编辑操作,可以在options菜单—-》global options——》terminal——-》mouse功能块处将paste on处改为:right button
    Docker学习系列(一):windows下安装docker
    此时,再鼠标右键时,弹出了文本操作功能的菜单,如下:
    Docker学习系列(一):windows下安装docker
    (2)更改secureCRT的字体和背景
    Docker学习系列(一):windows下安装docker
    Docker学习系列(一):windows下安装docker
    仅是更改当前section的字体
    Docker学习系列(一):windows下安装docker

5.安装中遇到的问题

全部安装完成后,打开Docker Quickstart Terminal,可能会出现如下错误:
Docker学习系列(一):windows下安装docker
这是因为电脑没有开启支持VT-X/AMD-v功能,即没有开启虚拟化技术,需要重启电脑,去BIOS里开启该功能

在利用image生成镜像时,发生了如下错误

flag provided but not defined:

以为是因为docekr service和client的版本不同,各种查询折腾,也没有成功,最后发现,居然是命令中-v和路径之间少了空格!都怪自己没有仔细查看错误提醒
Docker学习系列(一):windows下安装docker
~~~~~~~~~~
Docker学习系列(一):windows下安装docker

6.Docker的更新

如果本机安装的docker过期了,也就是有新版本的docker发布时,应该对本机的docker进行更新,否则很可能会影响它的继续使用,那么,对本机的docker进行更新可以安装下述方式:
(1)打开Docker Quickstart Terminal终端
(2)输入命令:docker-machine upgrade default
会开始自动更新本机的docker,如下图所示
Docker学习系列(一):windows下安装docker
(3)查看docker版本

docker version

Docker学习系列(一):windows下安装docker

Docker学习系列(一):windows下安装docker

7.Docker中的jupyter

我使用的image中带有jupyter,但发现按照ubuntu下的使用方法,即进入容器后,打开http://0.0.0.0:8888/无法打开Jupyter,经过一番查询才终于找到正解,原来jupyter的image中就有明确说明,但没有想到去那里查询!

具体方法:
(1)打开boot2docker,输入docker-machine ip,会返回一个IP地址,例如

$ docker-machine ip myjupytermachine
192.168.99.104

(2)在浏览器中打开http://192.168.99.104:8888,即可打开jupyter
而不是与ubuntu中一样的http://localhost:8888 (http://0.0.0.0:8888/)

8.windows下使用docker的常用命令

详细内容与ubuntu下的使用方法类似,见Docker学习系列(三):Ubuntu下使用Docker的基本指令记录及一些注意事项,但为了查阅方便,这里再单独列举

  • 查看本机images
docker images
  • 查看本机运行的container
docker ps
  • 从dockerhub上pull 镜像
docker pull 镜像名称
  • 利用image运行container:
docker run -it --rm -p 8888:8888 -v /c/Users/tingting/dropbox/code:/root/opt/workspace -v /c/Users/tingting/dropbox/data:/root/data tingtinglu/caffe_mxnet

(1)利用参数 -v
(2)冒号前为宿主机目录,必须为绝对路径
/c/Users/tingting/dropbox/code:
本机的C:/Users/tingting/dropbox/code文件夹
/c/Users/tingting/dropbox/data
本机的C:/Users/tingting/dropbox/data文件夹
(3)冒号后为镜像内挂载的路径
/root/opt/workspace
docker中的文件夹/root/opt/workspace
/root/data
docker中的文件夹/root/data
(4)这里的本机文件夹为c盘,那么,能否为d盘呢?
测试:

docker run -it --rm -p 8888:8888 -v /d/Dropbox/code:/root /opt/workspace -v /d/Dropbox/data:/root/data tingtinglu/caffe_mxnet

发现并不可行!这是因为目前,windows下只支持c盘下的文件夹映射

python常用绘图软件包记录

在没有使用python之前,觉得matlab的绘图功能还算可以~但现在发现python的绘图包真的好强大,绘制出的图像非常专业漂亮,但具体使用还有待学习,这里记录学习过程中遇到的python绘图包,以备之后使用

【为了安装python包,可以使用python管理工具pip,使用方法:pip install python-package-name】

1. matplotlib

matplotlib官方教程

该python绘图包与matlab的绘图功能类似

2. seaborn

seaborn官方教程

用来进行统计数据可视化的工具包,绘制的图像非常漂亮,该python package也是基于matplotlib的,是纯粹由python开发的

Seaborn is a Python visualization library based on matplotlib. It provides a high-level interface for drawing attractive statistical graphics.

该软件包的依赖项(当然,python是其必须依赖的),这里列出seaborn依赖的其他python packages

numpy、scipy、matplotlib、pandas

另外,statsmodels这个package也是推荐的依赖包,虽然不是必须,但似乎有该包会比较好‘

 

安装GraphViz以供python调用

本文目录

问题出现

最近在windows7上利用pycaffe的draw_net.py进行.prototxt网络结构配置文件的绘图,结果出现了如下错误:

InvocationException: GraphViz’s executables not found

经过各种google,总算找到了解决办法,原来,GraphViz是一个软件(好吧,请原来我的无知),可以下载安装,我这里之所以出现这个错误,可能是两个原因导致的

  • 电脑没有安装GraphViz
  • 电脑安装了GraphViz,但是,并没有将它的bin目录加入到环境变量PATH中,所以,其他应用程序无法找到它

仔细想想,自己之前好像确实没有安装过它,所以,果断判断为是第一个原因,下面开始安装GraphViz

下面这段话引用Stackoverflow网站关于该问题的一个回答,本文的解决方案主要来自于它
安装GraphViz以供python调用

安装Graphviz

下载Graphviz

下载地址:graphviz官网

  • 进入下载页,找到Download
    安装GraphViz以供python调用

  • 点击Download,在弹出的下载页中找到windows的下载链接,并点击
    安装GraphViz以供python调用

  • 在弹出的windows版本下载界面中选择需要下载的版本,这里我选择了.zip文件
    安装GraphViz以供python调用

解压缩文件

  • 文件下载完成后,将它解压到某一路径下,例如,我将它解压到了D:/software/caffe-vs/graphviz-2.38,下图展示了解压后的文件结构,可以看到,解压后的文件中只包含一个Release文件夹
    安装GraphViz以供python调用

添加环境变量

  • 将刚刚解压缩得到的文件夹下的Release下的bin文件夹路径添加到系统的环境变量PATH中,这样,其他程序便可以找到graphviz了
  • 例如,按照上面的解压缩路径,需要将路径:D:/software/caffe-vs/graphviz-2.38/release/bin添加到环境变量PATH

重启python IDE

完成上述所有操作后,重启python IDE,发现draw_net.py终于可以使用了!

注:下面是’draw_net.py’的代码,来自于’caffe/python/draw_net.py’
使用方法:

  • ‘draw_net.py’使用方法(在cmd中输入如下命令)
python /caffe_root/python/draw_net.py file.prototxt file.jpg
  • ‘draw_net.py’代码
#!/usr/bin/env python
"""
Draw a graph of the net architecture.
"""
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
from google.protobuf import text_format

import caffe
import caffe.draw
from caffe.proto import caffe_pb2


def parse_args():
    """Parse input arguments
    """

    parser = ArgumentParser(description=__doc__,
                            formatter_class=ArgumentDefaultsHelpFormatter)

    parser.add_argument('input_net_proto_file',
                        help='Input network prototxt file')
    parser.add_argument('output_image_file',
                        help='Output image file')
    parser.add_argument('--rankdir',
                        help=('One of TB (top-bottom, i.e., vertical), '
                              'RL (right-left, i.e., horizontal), or another '
                              'valid dot option; see '
                              'http://www.graphviz.org/doc/info/'
                              'attrs.html#k:rankdir'),
                        default='LR')

    args = parser.parse_args()
    return args


def main():
    args = parse_args()
    net = caffe_pb2.NetParameter()
    text_format.Merge(open(args.input_net_proto_file).read(), net)
    print('Drawing net to %s' % args.output_image_file)
    caffe.draw.draw_net_to_file(net, args.output_image_file, args.rankdir)


if __name__ == '__main__':
    main()