Bootstrap

keras深度学习框架

 实验室新装了keras,发现 keras默认后端是tensorflow,想换回theano,看了官方文档也没搞懂,最终搞定,很简单。

中文文档的描述:keras中文文档,切换后端

后端切换:http://blog.csdn.net/tangwenbo124/article/details/52627774?locationNum=7

keras中文文档:http://keras-cn.readthedocs.io/en/latest/getting_started/keras_linux/ (很不错的学习keras资料)


Keras是一个简约,高度模块化的神经网络库。采用Python / Theano开发

使用Keras如果你需要一个深度学习库:

  • 可以很容易和快速实现原型(通过总模块化,极简主义,和可扩展性)
  • 同时支持卷积网络(vision)和复发性的网络(序列数据)。以及两者的组合。
  • 无缝地运行在CPU和GPU上。

镜像的容器中使用:

1.keras.json: 在/root/.keras/里面;

 2.后端切换:修改keras.json文件,th=theano, tf=tensorflow


keras后端theano中使用GPU的方法:

来自官方的介绍How do I use keras with gpu

If you are running on the TensorFlow backend, your code will automatically run on GPU if any available GPU is detected. If you are running on the Theano backend, you can use one of the following methods:

Method 1: use Theano flags.

THEANO_FLAGS=device=gpu,floatX=float32python my_keras_script.py
The name ‘gpu’ might have to be changed depending on your device’s identifier (e.g. gpu0, gpu1, etc).

Method 2: set up your .theanorc: Instructions (修改.theanorc.txt文件,如果没有该文件,可以自己新建该文件,放到/root/.theano/下面)

sudo vim ~/.theanorc

add these content
[global]
device=gpu
floatX=float32

Method 3: manually set theano.config.device, theano.config.floatX at the beginning of your code:

import theano
theano.config.device = ‘gpu’
theano.config.floatX = ‘float32’


.theanorc.txt文件:

[global]  
device=gpu  
floatX=float32 

[dnn.conv]
algo_bwd_filter = deterministic
algo_bwd_data = deterministic

[cuda]
root=/usr/local/cuda-8.0

[lib]
cnmem=0.3

[nvcc]
fastmath = True
optimizer_including=cudnn

备注 :

1.nvidia-smi 查看gpu的使用情况,GPU-Util:gpu使用率

2.查看theano的版本号:

python

import theano

theano.__version__

3. THEANO_FLAGS=device=gpu,floatX=float32 python train_model_zj.py  ./data  

跑GPU,GPU一直跑不通,原因theano的版本太低,

sudo pip install -U --pre theano

4. 报这个问题:Using gpu device 0: GeForce GTX 1080 (CNMeM is disabled, cuDNN 5105) 可以忽略

5.进程号: 数字PID,是英文ProcessIDentifier的缩写

强制终止进程:kill -9 进程号

ps -aux  //显示所有包含其他使用者的进程

USER 

  PID    %CPU %MEM VSZ    RSS TTY    STAT    START TIME COMMAND
smmsp 3521    0.0    0.7        65561616                  Ss        20:40 0:00sendmail: Queue runner@01:00:00 f

名称:ps
使用权限:所有使用者
使用方式:ps [options] [--help]
说明:显示瞬间行程 (process) 的动态
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程

au(x) 输出格式 :

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 不可中断的静止
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令


;