most in Chinese, rest in English

0%

Deep learning框架使用tips

Deep learning框架使用tips

Tensorflow

1
2
3
4
5
6
7
8
9
10
11
12
13
tf.add_n(): a list of tensors add
tf.assign(v,10): assign value 10 to a variable
#get variables function
tf.all_vaariables(): get all variables
tf.trainable_variables(): get all trainable variables
tf.concat(concat_dim, values, name='concat'): tf concatenation on the concat_dim dimension.
# get all collection variable keys
graph = tf.get_default_graph()
graph.get_all_collection_keys()
graph.get_tensor_by_name('mlp_b1:0')

#get variable name
v.name

tf.train.batch(): 把数据分成一个一个的batch, 每个batch 中有batch_size 个数据
tf.name_scope() and tf.Variable_scope() 差不多,但是name_scope 对于tf.get_variable() 没影响。 这些都是用来方便管理的。可以在tensor board 可视化的时候更有帮助。

RNN中用的多的:
tf.clip_by_global_norm:用于控制梯度下降的参数。把梯度值控制在一个合理的范围内。

tensorflow GPU on server
指定GPU 一开始:
CUDA_VISIBLE_DEVICES=1 python test.py

安装指南:

~/.bashrc 里面的东西
#cuda settings
export PATH=$HOME/cuda-8.0/bin:$PATH
export CPATH=$HOME/cuda-8.0/include:$CPATH
export LIBRARY_PATH=$HOME/cuda-8.0/lib64:$LIBRARY_PATH
export LD_LIBRARY_PATH=/$HOME/cuda-8.0/lib64:$LD_LIBRARY_PATH

dataset + estimator 以后把所有的输入部分转化成dataset 的模式。 estimator 是一个高层封装,可以调用一些基本方法。

install from server

install tensorflow in Saturn (ILS server)
Saturn 的server是Red Hat 的,所以参考https://jiafulow.github.io/blog/2018/07/10/install-tensorflow-with-gpu-on-redhat/ 来安装Tensorflow-GPU.

For Ubuntu server,
为了run python 3.6 + tensorflow GPU version in ILS saturn server, 具体步骤:
一 准备工作:

  1. 安装anaconda 3。在.bashrc 里面加入
    PATH=/home/gao27/anaconda/bin:$PATH
  2. 确定你的Python version 3.6

二 安装cuda 和 cudnn

  1. 因为我们没有权限在cuda里面直接安装,所以我们首先通过which nvcc 找到cuda 包的所在地,然后把cuda整个包都拷贝到一个我们有权限操作的地方。 cuda版本需要8.0
  2. 下载cudnn 5.1 版本,解压后会有两个文件夹lib64 和 include。 把里面的文件对应加到cuda对应的lib64 和 include里面 (不同版本的tensorflow 对应不同的cudnn. tensorflow 1.4 对应6.0. )
  3. 在.bashrc 里面加入如下路径
    #cuda settings
    export PATH=$HOME/cuda/bin:$PATH
    export CPATH=$HOME/cuda/include:$CPATH
    export LIBRARY_PATH=$HOME/cuda/lib64:$LIBRARY_PATH
    export LD_LIBRARY_PATH=/$HOME/cuda/lib64:$LD_LIBRARY_PATH

最后要source ~/.bashrc
三 安装tensorflow GPU 版本通过Anaconda
如图:

网址如下:https://www.tensorflow.org/versions/r1.2/install/install_linux#python_36

然后activate tensorflow之后检验是否安装成功:

Python

import tensorflow as tf
hello = tf.constant(‘Hello, TensorFlow!’)
sess = tf.Session()
print(sess.run(hello))

https://blog.csdn.net/u014797226/article/details/80229887
https://blog.ailemon.me/2017/06/06/install-tensorflow-gpu-on-ubuntu-linux/
https://blog.csdn.net/u014797226/article/details/80229887

炼丹trick

为什么loss 或者学习的参数 在summary 中会出现nan?
可能是由于梯度爆炸引起的。解决方法:1. gradient clip 2. batch nomalization 3, 降低学习率 4. 加入正则。

如果你想查看ckpt中的网络结构和参数该怎么弄呢?这里提供2种方法。 一是用tensorflow官方源码中自带的inspect_checkpoint.py 给个例子如下: python /usr/local/lib/python2.7/dist-packages/tensorflow/python/tools/inspect_checkpoint.py --file_name=model.ckpt-158940 --tensor_name=unit_1_1/conv1/Weights 如果你只用了file_name这个参数,那么看到的就是整体网络结构。如果你2个参数都用了,那看到的就是具体那一层的值

activate tensorflow:

source ~/Documents/tensorflow/bin/activate

deactivate tensorflow:

deactivate

Pytorch

参考文献: