首先环境配置,这里需要tensorflow版本比较低,之前用高版本的tf出现cudnn无法调用(连1.12.0都不行)
tensorflow:1.9.0
keras:2.2.4
首先在运行的过程中出现
tensorflow/stream_executor/cuda/cuda_dnn.cc:332] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
注意,这个不是tensorflow或者是keras版本问题,就是显存没有分配好
网上查了说的是删除.nv文件夹,但是删了仍然出现,并且他们的问题还有CUDNN_STATUS_BAD_PARAM这个
采用的第二种方法
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.1)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
这两句加在初始出即可
这两句的意思是加入了GPU使用率的限制,防止显存爆炸
或者是另一种方法:动态调整申请显存
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)
PS这种方法非常好用,建议使用
在进行train_shape测试的时候也出现运行不成功,也是加入上面的话,并且改变batchsize的大小进行处理。但是好像还是显卡有问题,提示显存不足??
在github上提供了三步走策略,(inspect_data.ipynb, inspect_model.ipynb, inspect_weights.ipynb)这三个分别可以进行数据可视化,模型可视化以及模型参数可视化
Anchor sorting and filtering可视化RPN提供的所有box
Bounding Box Refinement经过进一步调整(fast rcnn)后的pred box与类别
Mask Generation记住在mask rcnn中回归预测框、分类class、mask构建都是平行的关系,这里生成掩模mask并且替换原图部分
Layer activations经常以heat map出现说明该层fm对什么特征感兴趣(因为经过的卷积核对某一特征感兴趣那么就会在对应位置有反应
Weight Histograms在inspect_weights.ipynb中出现,这里就是进行权值参数分析
Logging to TensorBoard记录loss啥的
实际使用:
一切都是以train_shape.ipynb为蓝本进行训练重写train.py
!!!!对于训练的时候如果出现could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR加入动态显存!!!
并且要设置训练参数
主要思路就是读取Image, label.png和yaml三部分