tensorflow几个简单tips

tensorboard

# default port 6006, use `--port=xxxx` to specify port 
tensorboard --logdir=/path/to/logdir
# or
python ~/.local/lib/python2.7/site-packages/tensorflow/tensorboard/tensorboard.py --logdir=/path/to/logdir

对于keras,有内容callback能记录日志支持

    tb = keras.callbacks.TensorBoard(log_dir='/path/to/logdir', histogram_freq=0, batch_size=32, write_graph=True, write_grads=False,
                                write_images=False, embeddings_freq=0, embeddings_layer_names=None,
                                embeddings_metadata=None)
    callbacks.append(tb)

设置使用的GPU

shell终端命令执行程序时设置使用的GPU

CUDA_VISIBLE_DEVICES=1 python my_training_script.py

2 python代码中设置使用的GPU

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "2"

设置tensorflow使用的显存大小

定量(定比例)设置显存

默认tensorflow是使用GPU尽可能多的显存。可以通过下面的方式,来设置使用的GPU显存:

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.7)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

上面分配给tensorflow的GPU显存大小为:GPU实际显存*0.7。
可以按照需要,设置不同的值,来分配显存。

按需设置显存

上面的只能设置固定的大小。如果想按需分配,可以使用allow_growth参数(参考网址:http://blog.csdn.net/cq361106306/article/details/52950081):

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

tensorflow models

tensorflow models 提供的object_detection/export_inference_graph.py会生成frozen_inference_graph.pbmodel.ckptsaved_model.pb
ckpt的data保存了weights,meta保存了graph和metatada。 仅从.ckpt-meta.ckpt-data中就可以恢复出模型。pb文件一个文件就包含graph和data。
生产环境中进行预测的时候是只需要模型和权重,不需要metadata,所以需要将其提出进行freeze操作,将所需的部分放到一个文件,方便之后的调用,也减少模型加载所需的内存。(在下载的预训练模型解压后可以找到4个文件,其中名为frozen_inference_graph.pb的文件就是freeze后产生的模型文件,比weights文件大,但是比weights和meta文件加起来要小不少。)
tensorflow目标检测模型的压缩和ncnn转换
Tensorflow物体检测(Object Detection)API的使用

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注