windows 下配置mysql-5.7.21(最新免安装版)

由于以前一直在linux服务端上使用mysql,今天在windows笔记本上装了下,顺便写下了过程:
(注:由于软件时境过迁,只保证2018.4.10日(今天)此方法可用,后续软件升级后可能也会有些许出入)
一、在Mysql官网下载Mmysql-5.7.21的ZIP文件(免安装文件)
下载链接为:https://dev.mysql.com/downloads/mysql/
找到你的系统对应的版本下载,比如这里我的是:mysql-5.7.21-winx64.zip

二、解压ZIP文件
比如解压至:D:/soft/ ,更改 mysql-5.7.21-winx64 文件夹名称为 mysql

三、配置环境变量

1、新建一个变量:MYSQL_HOME

变量值:D:/soft/mysql

2、修改path变量

添加一条记录:%MYSQL_HOME%/bin

四、在D:/soft/mysql目录下创建如下my.ini文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[mysqld]

#绑定IPv4
bind-address = 0.0.0.0

# 设置mysql的安装目录,即你解压缩安装包的位置
basedir = D:/soft/mysql

# 设置mysql数据库的数据的存放目录
datadir = D:/soft/mysql/data

# 设置端口号
port = 3306

# 允许最大连接数
max_connections = 200

# 设置字符集为utf8
loose-default-character-set = utf8

# 开启查询缓存
explicit_defaults_for_timestamp = true

# windows下区分表名大小写(0:不区分,2区分(5.7版本))

lower_case_table_names=2

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
#设置客户端字符集
port=3306
default-character-set = utf8

[WinMySQLadmin]
Server = D:/soft/mysql/bin/mysqld.exe
skip-grant-tables

五、将mysql注册为Windows系统服务

1、使用管路员权限打开CMD(注意管理员权限),在CMD中进入mysql的解压目录

2、运行服务安装命令

mysqld install MySQL –defaults-file=”%MYSQL_HOME%\my.ini”

安装成功后会提示安装成功

备注:如果想要移除该服务,使用命令:mysqld -remove

六、启动mysql服务

1、启动服务命令为:net start mysql
2、此时会提示:
启动不了mysql服务,提示发送系统错误2:”系统找不到指定文件”
①首先打开注册表
win+r打开运行,输入regedit,打开注册表
②更改注册表:找到
HKEY_LOCAL_MACHINE
-SYSTEM
-CurrentControlSet
-services-mysql(服务名)
-ImagePath

更改原来的值(默认目录):”C:\Program Files\MySQL\MySQL Server 5.7\mysqld” –defaults-file=D:\soft\mysql\my.ini MySQL

为(安装目录):”D:\soft\mysql\bin\mysqld” –defaults-file=”D:\soft\mysql\mysql5.6.17\my.ini” mysql

2、打开管理工具 服务,找到MySQL服务。通过右键选择启动或者直接点击左边的启动来启动服务

创建命令:

1
mysqld --initialize-insecure --user=mysql

七、修改root账号密码

刚安装完成时root账号默认密码为空,此时可以将密码修改为指定的密码。

打开数据库:

1
mysql -uroot -p

(提示 Enter password,直接回车,默认密码为空)

1
2
3
4
5
6
7
use mysql;

update mysql.user set authentication_string=password('123456') where user='root'

flush privileges;

quit;

密码修改完成后既可以使用新密码登录。

参考了文章:博客园:mysql-5.7.18 免安装版安装配置(Windows)

南去丶离外婆家

南去丶离外婆家

秋劲冰迎来

春窒雪送去

明朝繁华至

还归外婆家

无题—–题于狄道

边陲小镇夜无声,无车乏人似难行。
脚踩红龙跨宝马,任游长河西湖羞!

闲游西湖群寺(三则)

闲游西湖群寺(三则)

 

三生石上生三枝,

三生石后鸣乱笛。

精魂问我诺千金?

邪冥犹忧到北冥。

素面一碗酒一杯,

江南一载一荣枯。

不知学海怎无涯,

高僧亦从教学来。

灵隐繁香佛乘仙,

千年古刹意浩然。

财神庙前财运俱,

“懒驴”庙外臭堆沙。

——————————脩于公元二零一七年十月七日

昨日,闲来无事,遂去闲游,不知欲至何处。想来来江南已一载有余,还未尝见石,曰:三生。石边冷清,遂取笛而鸣,然声涩难鸣,故名乱笛。三生石中上石恰生三枝,在石下向上望,中石上一怪客,仿若骷髅(也许便是传说中的精魂吧),仿佛可以洞穿人心。午间山下小寺边食一碗素面,恰过清泉,泉边一寺,寺内“教学楼”见所未见,笑叹“和尚也教学”。大寺庙宇香火不断,千年古刹意蕴犹存,不足方圆的三丈财神庙内求签之人之热切满溢。财神庙外却是那九百五十级让烦人望而却步的长路,浑身腥臭的“懒驴”驮着沙从山底运至山顶。

 

年少·鸟语花香

年少·鸟语花香

早起乱笛飞,

蚊吻眉心痣。

不香花鸟紋,

少罔踌躇年。

——————————脩于公元二零一七年九月二十二日晨

浅谈关于类设计中的赋值运算符和复制构造函数

由于修在学习C++的时候类的设计不可避免,而修在创建了类的时候经常会把复制构造函数和赋值运算符搞混,所以开帖特别记忆一下。

一、定义:

1.赋值构造函数接受其所属类的对象作为参数,来创建一个新的类对象。

2.赋值运算符用于处理同类对象之间的赋值,用”=“表示。

二、使用范围及形式说明:
1.复制构造函数原型如下:

1
Star(const Star &)

在以下情况下使用复制构造函数:
①将新对象初始化为一个同类的对象
②按值将对象传递给函数
③函数按值返回对象
④编译器产生临时对象
2.赋值运算符(注意与初始化的区别):

1
2
3
4
Star siriue;
Star alpha = sirus;//初始化
Star dogstar ;
dogstar = sirus;//赋值

赋值运算符用于修改已有对象的值,如果没有动态内存分配可以使用默认的赋值运算符,否则可能需要重载。

由于在类初始化时,编译器会自动为类生成一些成员函数,包括默认的构造函数,复制构造函数和赋值运算符。所以在不需要特殊操作的情况系,无需重新定义。

三、对比
这里用C++perimer plus edition 6书编程练习的一个例子做对比。
复制构造函数:

1
2
3
4
5
6
7
8
9
Cd::Cd(const Cd & d)
{
    performers = new char[strlen(d.performers)+1];
    label = new char[strlen(d.label)+1];
    strcpy(performers,d.performers);
    strcpy(label,d.label);
    selections = d.selections ;
    playtime = d.playtime;
}

赋值运算符:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Cd & Cd::operator=(const Cd & d)
{
    //赋值前要删除原来的空间
    if(this == &d)
    {
        return *this ;
    }
    delete [] performers;
    delete [] label ;
    performers = new char[strlen(d.performers)+1];
    label = new char[strlen(d.label)+1];
    strcpy(performers,d.performers);
    strcpy(label,d.label);
    selections = d.selections ;
    playtime = d.playtime;

    return *this;
}

程序详见:https://github.com/ghostxiu/CplusplusPrimerPlus6thEditions/tree/master/Chapter13/cd1.cc
四、其他
还要注意赋值运算符和转换函数的区别。

骜长生

骜长生

 骜龙傲畺行。

飞流不入海。

笑笛早生青 ,

酣泉丑时来?

——————————————脩于公元贰零壹柒年九月十九日晨

ubuntu16.04+qt5.9+opencv3.3安装教程

一、环境:
ubuntu16.04 G++ 5.4 cuda 8.0 cudnn6.0
二、安装依赖包
1.安装opencv依赖包

1
2
3
4
5
6
7
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install ffmpeg

2.安装qt5(可选)
a.下载安装qt5
至官网下载 http://download.qt.io/archive/qt
cd 定位至下载目录
给文件授权

1
chmod +x qt-opensource-linux-x64-5.9.1.run

安装

1
./qt-opensource-linux-x64-5.9.1.run

b.安装opengl依赖

1
2
sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev -y

三、下载并安装opencv
1.下载opencv3.3

1
2
 wget https://github.com/opencv/opencv/archive/3.2.0.zip
 wget https://github.com/opencv/opencv_contrib/archive/3.3.0.zip

2.配置opencv,分为支持cuda模式和不支持的配置模式
将上述opencv包解压,然后cmake配置属性

1
2
3
cd opencv-3.3.0
mkdir build
cd build

a.按装不支持cuda的配置

1
2
3
4
5
6
7
8
9
10
11
12
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/home/fanzong/anaconda2/envs/tensorflow \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \
    -D PYTHON_EXCUTABLE=/home/fanzong/anaconda2/envs/tensorflow/bin/python \
    -D WITH_TBB=ON \
    -D WITH_V4L=ON \
    -D WITH_QT=ON \    # 需要QT安装支持,否则请不要执行此行
    -D WITH_GTK=ON \
    -D WITH_OPENGL=ON \
    -D BUILD_EXAMPLES=ON .. # cmake命令的使用方式:cmake [<some optional parameters>] <path to the OpenCV source directory>。如果命令报错的话可以试着把-D后面的空格去掉在执行一次。

b.支持cuda的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \
-D PYTHON_EXCUTABLE=/usr/bin/python \
-D WITH_CUDA=ON \
-D WITH_CUBLAS=ON \
-D DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" \
-D CUDA_ARCH_BIN="8.0" \
-D CUDA_ARCH_PTX="" \
-D CUDA_FAST_MATH=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \    
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
-D BUILD_EXAMPLES=ON ..

编译文件

1
2
3
4
make -j4
sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

四、测试opencv程序

选择->文件→新建项目→控制台程序,如下图所示:

然后选择编译方式为qmake
假设我们新建了名为test1的项目,现在要更改以下两个文件
1.test1.pro

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
QT += core
QT -= gui

CONFIG += c++11

TARGET = test1
CONFIG += console
CONFIG -= app_bundle


INCLUDEPATH += /home/gx/opencv-3.3.0/include \
               /home/gx/opencv-3.3.0/include/opencv \
                /home/gx/opencv-3.3.0/include/opencv2

LIBS += -lopencv_core -lopencv_highgui -lopencv_imgproc -lm -lstdc++  -lgomp


TEMPLATE = app

SOURCES += main.cpp

# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

main.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;

int main()
{
        namedWindow( "src");
        Mat img = imread( "/home/Pictures/lena.jpg" );

        if(!img.data) {
            cout<<"file not found"<<endl;
            return 1;
        }
        else {
             imshow( "src", img );
             waitKey();
             return 0;

       }
}

测试效果如下图

win8+opecv2.4环境搭建

一、依赖环境
win8.1_enterpraisex64
codeblocks16.01
二、安装opencv
1.首先至opencv官网下载发行版
下载地址:http://opencv.org/releases.html
2.将下载后文件解压至某文件夹,比如D:/TEMP/OPENCV
三、启动codeblocks支持
1.在codebolcks里面新建一个控制台项目:
2.右击项目名称,选择构建选项,按照以下配置:

3.然后设置链接器,选择导入所有的库文件:


四、启动测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include "cv.h"
#include "highgui.h"

int main()
{
    IplImage* img = cvLoadImage("test.jpg");
    cvNamedWindow( "test", 0 );
    cvShowImage("test", img);
    cvWaitKey(0);
    cvReleaseImage( &img );
    cvDestroyWindow( "test" );
    return 0;
}

五、错误说明
1.|fatal error: opencv2/core/core_c.h: No such file or directory|
解决方法:检查搜索目录是否设置正确
2.无法启动此程序,因为计算机中丢失opencv_core*d.dll
解决方法:在环境变量中加入:
D:\TEMP\opencv\build\x64\vc14\bin
D:\TEMP\opencv\build\x86\vc14\bin

炫龙笔记本深度学习基本环境搭建(ubuntu16.04+GTX1060+CAFE+TENSORFLOW)

一、安装环境说明
1.ubuntu 16.04 x64 (常规安装 ,非GPT+UEFI,UEFI出了很多问题,这里不建议用,如果你有好的方法,可以推荐)
2.硬件配置 I7 6700HQ /GTX1060 6G /8G DDR4
一般来讲稍微大一点的模型都要6G左右显存,所以当时就买了这款,刚好能够带起来。
3.学习环境(caffe + tensorflow gpu 1.2.1 +python2.7 + cuda_8.0.61 + cudnn-8.0-linux-x64-v5.1 )
二、系统内的一些设定(可选,也可直接跳过):
1.挂载ntfs fat32分区
(如果dpkg发生问题,则重建文件:

1
2
3
4
5
 sudo rm /var/lib/lists/lock
 
 sudo rm /var/lib/dpkg/lock
 sudo apt-get update  
 sudo apt-get upgrade

)
①挂载ntfs分区
挂载ntfs 需要两个软件,ntfs-3g 和 ntfs-config,其中ntfs-3g 在ubuntu16.04中已经有了,现在只需要安装ntfs-config即可: sudo apt-get install ntfs-config
sudo ntfs-config
打开ntfs-config的配置程序,选择挂载位置后,在外部设备写支持和内部设备写支持上打钩
②挂载fat32分区
使用

1
sudo fdisk -l

查看你的fat32分区位置
这里我的是 /dev/sda6
修改/etc/fstab

1
sudo gedit /etc/fstab

加上这一句:

1
/dev/sda4 /media/f vfat user,auto,umask=002,iocharset=utf8 defaults 0   0

2.安装teamviewer
官网下载,有一个图标没有权限问题:
sudo nautilus
在这个界面中通过“计算机”进入xxx.desktop所在文件夹,文件xxx.desktop上点击右键,选择属性,在属性窗口中点击权限选项卡,选择所有者为root,勾选允许作为程序执行文件,点击关闭。
重启,登录,添加设备信任。
3.安装shadowsocks并实现全局代理
①升级python到3.x

1
2
3
sudo apt-get
python3
sudo ln -s /usr/bin/python3.5 /usr/bin/python

通过优先级的方法切换python2 和 3

1
2
3
sudo update-alternatives --install /usr/bin/Python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
sudo update-alternatives --config python

通过数字来选取你需要的python版本
②安装shadowsocks-qt5(也可以用shadowsocks,不过这里觉得qt5更方便)

1
2
3
sudo add-apt-repository ppa:hzwhuang/ss-qt5
sudo apt-get update
sudo apt-get install shadowsocks-qt5

③配置PAC全局代理
安装GenPAC(GenPAC 是基于gfwlist的代理自动配置(Proxy Auto-config)文件生成工具,支持自定义规则。)
可能需要先安装pip

1
sudo apt-get install python-pip python-dev build-essential

(注意直接安装的pip需要对应python2.x)
升级到pip3

1
sudo apt-get install python3-pip

安装genpac

1
2
sudo pip install genpac
pip install --upgrade genpac

调用在线 gfwlist 列表生成本地 autoproxy.pac 文件

1
cd /home/gx/Desktop/workspace/setup
1
genpac -p "SOCKS5 127.0.0.1:1080" --gfwlist-proxy="SOCKS5 127.0.0.1:1080" --output="autoproxy.pac" --gfwlist-url="https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt" --user-rule-from="user-rules.txt"

或者

1
sudo genpac --proxy="SOCKS5 127.0.0.1:1080" -o user-rules.txt --gfwlist-url="https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt"

(出现ImportError: No module named ‘ConfigParser’ ,
这是由于在 Python 3.x 版本后,ConfigParser.py 已经更名为 configparser.py !
找到文件 configparser ,更名为旧版本的名称 ConfigParser)
sudo cp /usr/lib/python3.5/configparser.py /usr/lib/python3.5/ConfigParser.py

④设置全局代理
点击:System settings > Network > Network Proxy ;
选择 Method 为 Automatic
设置 Configuration URL 为 autoproxy.pac 文件的路径
file:///home/gx/Desktop/workspace/setup/user-rules.txt

6.安装chrome

1
2
3
4
sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub  | sudo apt-key add -
sudo apt-get update
sudo apt-get install google-chrome-stable

三、安装
1.安装英伟达显卡驱动程序
(ubuntu 16.04 可以直接在 软件和更新→附加驱动里面更改)

1
2
3
4
5
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-375
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev

(这里我的显卡最新驱动是375.66,所以安装375版本)
http://blog.csdn.net/WoPawn/article/details/52302164

2.安装cuda
①从nvidia官网下载cuda8.0.61安装包和升级包
cuda_8.0.61_375.26_linux.run 和 cuda_8.0.61.2_linux.run
②安装

1
sh cuda_8.0.61_375.26_linux.run  --override

(选择:
启动安装程序,一直按空格到最后,输入accept接受条款
输入n不安装nvidia图像驱动,之前已经安装过了
输入y安装cuda 8.0工具
回车确认cuda默认安装路径:/usr/local/cuda-8.0
输入y用sudo权限运行安装,输入密码
输入y或者n安装或者不安装指向/usr/local/cuda的符号链接
输入y安装CUDA 8.0 Samples,以便后面测试
回车确认CUDA 8.0 Samples默认安装路

安装升级包(过程和前边一样)
sh cuda_8.0.61_375.26_linux.run –override

③安装完成后显示
Logfile is /home/tmp/cuda_install_8310.log

3.安装cudnn
①在英伟达官网注册为开发者,下载cudnn,这里使用5.1
(由于tensorflow 1.21 不支持6.0版本,前面安装6.0发红色呢过诸多错误)
文件名为cudnn-8.0-linux-x64-v5.1.tgz
②安装cudnn

1
2
3
4
5
6
7
tar zxvf cudnn-8.0-linux-x64-v5.1.tgz
cd cuda/include/
sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件
cd ../lib64
sudo cp lib* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*    
#给所有用户增加读权限

③建立软链接

1
2
3
4
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so

设置环境变量

1
sudo gedit /etc/profile

在末尾加入

1
2
PATH=/usr/local/cuda/bin:$PATH
export PATH

保存后,创建链接文件

1
sudo gedit /etc/ld.so.conf.d/cuda.conf

增加下面一行

1
/usr/local/cuda/lib64

最后在终端输入sudo ldconfig使链接生效
(出现问题:

1
2
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接

解决方法:更名后重新建立符号链接:

1
2
3
4
sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1

)

1
sudo ldconfig

④测试cudn sample
打开CUDA 8.0 Samples默认安装路径,终端输入

1
cd /home/root/NVIDIA_CUDA-8.0_Samples

(root是用户名)

1
sudo make all -j4

(由于我得到的cpu是i7 6700hq 只有四个真核 ,所以这里使用4核编译)

(出现“unsupported GNU version! gcc versions later than 5.3 are not supported!”的错误,这是由于GCC版本过高,在终端输入

1
2
3
cd /usr/local/cuda-8.0/include
sudo cp host_config.h host_config.h.bak
sudo gedit host_config.h

ctrl+f寻找有“5.3”的地方,只有一处,如下
# if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 3)
#error — unsupported GNU version! gcc versions later than 5.3 are not supported!
将两个5改成6,即
#if __GNUC__ > 6 || (__GNUC__ == 6 && __GNUC_MINOR__ > 3)
cd /home/root/NVIDIA_CUDA-8.0_Samples (root是用户名)
sudo make all -j4 (由于我得到的cpu是i7 6700hq 只有四个真核 ,所以这里使用4核编译)

完成后继续向终端输入

1
2
cd bin/x86_64/linux/release
./deviceQuery

(完成之后文件setrequest/cuda_samples.txt 文件中)

4.安装caffe
①安装依赖包

1
2
3
4
5
6
sudo apt-get install build-essential #必要的编译工具依赖

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

②安装easy_install

1
2
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
sudo python ez_setup.py --insecure

③安装科学计算和python所需的部分库

1
sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran python-numpy

④安装git

1
2
sudo apt-get install git
git clone https://github.com/BVLC/caffe.git

⑤安装caffe

1
2
cd /home/root/caffe
cp Makefile.config.example Makefile.config

gedit Makefile.config
将USE_CUDNN := 1取消注释,
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include后面打上一个空格,
然后添加/usr/include/hdf5/serial如果没有这一句可能会报一个找不到hdf5.h的错误

1
make all -j4

(make过程中出现找不到lhdf5_hl和lhdf5的错误,
解决方案:
在计算机中搜索libhdf5_serial.so.10.1.0,找到后右键点击打开项目位置

1
sudo su
1
find / -name libhdf5_serial.so.10.1.0

找到位置为:/usr/lib/x86_64-linux-gnu/libhdf5_serial.so.10.1.0

1
2
3
4
5
cd /usr/lib/x86_64-linux-gnu
sudo ln libhdf5_serial.so.10.1.0 libhdf5.so
sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so
sudo ldconfig
make clean

再次输入make all -j4重新编译

1
2
3
4
5
make test -j4
make runtest -j4
make pycaffe -j4
make pycaffe -j4
make distribute #生成发布安装包

测试python

1
2
3
cd /home/root/caffe/python
python
import caffe

(如果遇到错误:ImportError: No module named skimage.io
解决办法:

可能是我们没有安装所谓的skimage.io 模块,所以可以用以下的命令来安装:

1
easy_install scikit-image

或者

1
pip install scikit-image

)
(遇到错误:ImportError: No module named google.protobuf.internal

1
sudo pip install protobuf

)

5.用caffe测试mnist数据
①下载minist数据集

1
cd /home/root/caffe/data/mnist/
1
./get_mnist.sh

②mnist数据格式转换

1
2
cd /home/root/caffe/
./examples/mnist/create_mnist.sh

此时在/caffe/examples/mnist/目录下生成mnist_test_lmdb和mnist_train_lmdb两个LMDB格式的训练集和测试集
LeNet-5模型描述在/caffe/examples/mnist/lenet_train_test.prototxt
Solver配置文件在/caffe/examples/mnist/lenet_solver.prototxt
③训练mnist

1
2
cd /home/root/caffe/
./examples/mnist/train_lenet.sh

(测试结果保存在setrequest/test_caffe_mnist.txt)
6.安装tensorflow
(官方安装:https://www.tensorflow.org/install/install_linux)
由于CUDA环境前面已经安装完成,现在只需要安装tensorflow即可,
官方提供了四种安装途径,这里使用python pip 安装。
①安装Tensorflow

1
2
pip install tensorflow
pip install tensorflow-gpu

最后的提示应该是:

1
Successfully installed tensorflow-gpu-1.2.1

②验证安装
运行hellotensorflow.py

1
python hellotensorflow.py