TensorFlow学习日记7

1. tf.layers.average_pooling3d

解析:average_pooling3d(inputs, pool_size, strides, padding='valid', data_format='channels_last',name=None):

Average pooling layer for 3D inputs (e.g. volumes). 

(1)tf.layers.dense:Functional interface for the densely-connected layer.

(2)tf.layers.conv3d:Functional interface for the 3D convolution layer.

(3)tf.layers.max_pooling3d:Max pooling layer for 3D inputs (e.g. volumes).

(4)tf.layers.dropout:Applies Dropout to the input.

(5)tf.layers.batch_normalization:Functional interface for the batch normalization layer.


2. Bidirectional Associative Memory,BAM

解析:Bidirectional Associative Memory(BAM)。


3. IDCNN

解析:Iterated Dilated Convolution Neural Network


4. tf.GPUOptions

解析:

# 假如有12GB的显存并使用其中的4GB:  
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)  
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) 
说明:per_process_gpu_memory_fraction指定每个GPU进程中使用显存的上限,但它只能均匀作用于所有GPU,无

法对不同GPU设置不同的上限。


5. config.gpu_options.allow_growth=True

解析:

config = tf.ConfigProto()  
config.gpu_options.allow_growth=True  
sess = tf.Session(config=config)  

说明:当allow_growth设置为True时,分配器将不会指定所有的GPU内存,而是根据需求增长。


6. CUDA_VISIBLE_DEVICES

解析:export CUDA_VISIBLE_DEVICES=1

说明:可设置环境变量CUDA_VISIBLE_DEVICES,指明可见的CUDA设备。

7. allow_soft_placement和log_device_placement

解析:with tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True))

(1)allow_soft_placement能让tensorflow遇到无法用GPU跑的数据时,自动切换成CPU进行。

(2)log_device_placement记录一些日志。  

(3)config.gpu_options.allocator_type='BFC'使用BFC算法。


8. tf.nn.conv2d_transpose

解析:tf.nn.conv2d_transpose(value, filter, output_shape, strides, padding='SAME', name=None)

(1)value是上一层的feature map。

(2)filter是卷积核[kernel_size, kernel_size, output_channel, input_channel]。

(3)output_shape定义输出的尺寸[batch_size, height, width, channel]。

(4)padding是边界打补丁的算法。


9. 

解析:

(1):对于短句子用填充。

(2): EOS代表句子的结尾。

(3):对于一些不常见的词汇,直接用UNK替换掉。

(4):decode的第一个输入,即decode预测开始。


10. TensorFlow数据集

解析:

(1)数据集:基类,包含用于创建和转换数据集的函数。允许从内存中的数据或从Python生成器初始化数据集。

(2)TextLineDataset:从文本文件中读取各行内容。

(3)TFRecordDataset:从 TFRecord 文件中读取记录。

(4)FixedLengthRecordDataset:从二进制文件中读取固定大小的记录。

(5)迭代器:提供了一种一次获取一个数据集元素的方法。


11. 数据流图(Data Flow Graph)

解析:数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,

但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent 

variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,

即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备

好,节点将被分配到各种计算设备完成异步并行地执行运算。


12. TensorFlow单进程集群

解析:

import tensorflow as tf
c = tf.constant("Hello, distributed TensorFlow!")
server = tf.train.Server.create_local_server()
sess = tf.Session(server.target)
sess.run(c)

说明:create_local_server:creates a new single-process cluster running on the local host.


13. tf.train.ClusterSpec

解析:

(1)tf.train.ClusterSpec({"local": ["localhost:2222", "localhost:2223"]}):/job:local/task:0;/job:local/task:1

(2)tf.train.ClusterSpec({"worker": ["worker0.example.com:2222", "worker1.example.com:2222", 

"worker2.example.com:2222"], "ps": ["ps0.example.com:2222", "ps1.example.com:2222"]}):/job:worker/task: 0

;/job:worker/task:1;/job:worker/task:2;/job:ps/task:0;/job:ps/task:1

说明:tf.train.Server通过tf.train.ClusterSpec构造函数,确定本地任务的工作名称和任务index。


14. TensorFlow分布式编程(Y=2*X+10)[2]

解析:无论是ps节点还是worker节点,运行的都是同一份代码,只是命令参数指定不一样。如下所示:

(1)ps节点

python distribute.py --ps_hosts=192.168.106.128:2222 --worker_hosts=192.168.106.129:2224,
                                192.168.106.130:2225 --job_name=ps --task_index=0
(2)worker节点
python distribute.py --ps_hosts=192.168.106.128:2222 --worker_hosts=192.168.106.129:2224,
                                192.168.106.130:2225 --job_name=worker --task_index=0
python distribute.py --ps_hosts=192.168.106.128:2222 --worker_hosts=192.168.106.129:2224,
                                192.168.106.130:2225 --job_name=worker --task_index=1

说明:ps节点主要是保存和更新参数的节点,worker节点主要是负责计算的节点。节点可以是虚拟的节点,也可以是

物理的节点。


参考文献:

[1] All symbols in TensorFlow:https://www.tensorflow.org/api_docs/python/

[2] 白话tensorflow分布式部署和开发:http://www.tensorflow123.cn/baihuatfdistribute.html 

你可能感兴趣的:(深度学习)