搞了几天终于把这个给搞得差不多了,遇到的错误这里也记录一下:

一、配置【配置什么的300和512其实差不多,这里只举一个例子来分析一下】

 之前的文件修改什么的和300x300的一样:https://www.cnblogs.com/GrPhoenix/p/10018072.html

从自己训练的ssd_300_vgg模型开始训练ssd_512_vgg的模型

因ssd_300_vgg中没有block12,又因为block7,block8,block9,block10,block11,中的参数张量两个网络模型中不匹配,因此ssd_512_vgg中这几个模块的参数不从ssd_300_vgg模型中继承,因此使用checkpoint_exclude_scopes命令指出。

因为所有的参数均需要训练,因此不使用命令--trainable_scopes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1 #/bin/bash
 2 DATASET_DIR=/home/data/xxx/imagedata/xing_tf/train_tf/
 3 TRAIN_DIR=/home/data/xxx/model/xing300512_model/
 4 CHECKPOINT_PATH=/home/data/xxx/model/xing300_model/model.ckpt-60000   #加载的ssd_300_vgg模型
 5 python3 ./train_ssd_network.py \
 6        --train_dir=${TRAIN_DIR} \
 7        --dataset_dir=${DATASET_DIR} \
 8        --dataset_name=pascalvoc_2007 \
 9        --dataset_split_name=train \
10        --model_name=ssd_512_vgg \
11        --checkpoint_path=${CHECKPOINT_PATH} \
12        --checkpoint_model_scope=ssd_300_vgg \
13        --checkpoint_exclude_scopes=ssd_512_vgg/block7,ssd_512_vgg/block7_box,ssd_512_vgg/block8,ssd_512_vgg/block8_box,ssd_512_vgg/block9,ssd_512_vgg/block9_box,ssd_512_vgg/block10,ssd_512_vgg/block10_box,ssd_512_vgg/block11,ssd_512_vgg/b    lock11_box,ssd_512_vgg/block12,ssd_512_vgg/block12_box \
14        #--trainable_scopes=ssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_3    00_vgg/block10_box,ssd_300_vgg/block11_box \
15        --save_summaries_secs=28800 \
16        --save_interval_secs=28800 \
17        --weight_decay=0.0005 \
18        --optimizer=adam \
19        --learning_rate_decay_factor=0.94 \
20        --batch_size=16 \
21        --num_classes=4 \
22        -gpu_memory_fraction=0.8 \

另外由300转512后还需修改:

1. 首先修改ssd_vgg_512.py的训练类别

2.修改train_ssd_network.py的model_name

修改为ssd_512_vgg

3. 修改nets/np_methods.py

修改:将300改为512, 将类别改为自己数据的类别(+背景)

4. 修改preprocessing/ssd_vgg_preprocessing.py

修改:将300改为512

5. 修改ssd_notbook.ipynb

a  将文件中数字“300”改为“512”

其他修改可以参考:http://blog.csdn.net/liuyan20062010/article/details/78905517

二、我遇到的错误:

InvalidArgumentError (see above for traceback): Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:Assign requires shapes of both tensors to match. lhs shape= [84] rhs shape= [8][[{{node save/Assign_20}} = Assign[T=DT_FLOAT, _class=["loc:@ssd_512_vgg/block12_box/conv_cls/biases"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](ssd_512_vgg/block12_box/conv_cls/biases, save/RestoreV2/_41)]][[{{node save/RestoreV2/_104}} = _Send[T=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_110_save/RestoreV2", _device="/job:localhost/replica:0/task:0/device:CPU:0"](save/RestoreV2:52)]]

  这类的问题本质上来说还是自己的配置不对,这个问题我查了很久,最后发现实在是太simpleT-T。

  我的问题的话:在从300转到512的时候忘记改ssd_vgg_512.py的类别导致test的时候文件配置和训练的tensor  shape不匹配TT...

转载于:https://www.cnblogs.com/GrPhoenix/p/10039833.html

SSD-Tensorflow 512x512 训练配置相关推荐

  1. 在 C/C++ 中使用 TensorFlow 预训练好的模型—— 直接调用 C++ 接口实现

    现在的深度学习框架一般都是基于 Python 来实现,构建.训练.保存和调用模型都可以很容易地在 Python 下完成.但有时候,我们在实际应用这些模型的时候可能需要在其他编程语言下进行,本文将通过直 ...

  2. Caffe SSD编译、训练及测试

    SSD采用VGG16作为基础模型,然后在VGG16的基础上新增了卷积层来获得更多的特征以用于检测.SSD的网络结构如上图所示(上面是SSD模型,下面是Yolo模型),可以明显看到SSD利用了多尺度的特 ...

  3. Tensorflow分布式训练原理

    以下文章摘录自: <机器学习观止--核心原理与实践> 京东: https://item.jd.com/13166960.html 当当:http://product.dangdang.co ...

  4. Tensorflow CIFAR-10训练例子报错解决

    Tensorflow CIFAR-10训练例子报错解决 大部分是Api版本问题: AttributeError: 'module' object has no attribute 'SummaryWr ...

  5. Caffe SSD Ubuntu16 04 训练自己的数据集

    总的来说,Caffe 是一个比较难上手的框架.这次尝试训练 Caffe 框架下 SSD 模型的训练是我第一次使用 Caffe 框架.下面就说一说我踩过的几个坑,希望能够帮助到大家. 1 编译 Caff ...

  6. 深度学习(五十五)tensorflow分布式训练

    tensorflow分布式训练 博客:http://blog.csdn.net/hjimce 微博:黄锦池-hjimce   qq:1393852684 情况一.单机单卡 单机单卡是最普通的情况,当然 ...

  7. 目标检测之SSD数据处理、训练与预测流程记录

    写在前面:本文不详细介绍SSD,只记录一些大体流程,具体细节可见参考1,换用数据集训练SSD可见参考2 参考1:SSD代码细节讲解 参考2:SSD换数据集训练 给定图片如何得到对应的GT SSD网络若 ...

  8. 新版本GPU加速的tensorflow库的配置方法

      本文介绍在Anaconda环境中,配置可以用GPU运行的Python新版tensorflow库的方法.   在上一篇文章Anaconda配置Python新版本tensorflow库(CPU.GPU ...

  9. 【mmaction2 入门教程 01】 slowfast训练配置 日志分析 测试结果分析

    目录 0 参考资料 1 GPU平台 2 训练配置(Training setting) 2.1 官网的训练配置文档 2.2 官网的时空动作检测的配置文件系统解析(Config System for Sp ...

最新文章

  1. vue中使用MD5加密
  2. 数据结构——线性表之链式存储结构
  3. python3 urlencode_Python2和Python3中urllib库中urlencode的使用注意事项
  4. Android v4、v7、v13 的区别
  5. 文本挖掘(part7)--Word2vec
  6. Java-jdbc连接数据库
  7. 【图像处理面试题】——1
  8. codeforces gym-101745 D-Stamp Stamp Stamp动态规划
  9. 数学公式、可视化图齐齐上阵,神经网络如何一步步走向最优化「看得见」!...
  10. Android Shader类简介之渲染图像示例
  11. java 时间格式化 星期_Java SimpleDateFormate时间格式化
  12. Unix/Linux笔记全集
  13. 企业对计算机类专业人才培养方案,应用型本科计算机科学与技术专业人才培养方案探讨...
  14. Black-Scholes期权定价公式
  15. 比较PAFF和MBAFF
  16. 线性代数中解方程组的加减消元和求特征向量的加减消元的区别
  17. python提取微信聊天语音_GitHub - dennischancs/wechat-asr: 微信语音批量转文字 python编写 用百度智能云短语音识别API实现 windows下的使用...
  18. Vue中使用qs 将post 请求方式序列化成get 请求
  19. 用计算机弹出微微,电脑显示器轻微闪烁怎么办
  20. linux看磁带内容命令,Linux下磁带管理命令

热门文章

  1. 单极霍尔开关SS1368 无刷直流电机用
  2. OpenGL学习(九)阴影映射(shadowMapping)
  3. php1000以内菲波,菲波纳奇交易:如何掌握时间与价格优势 Fibonacci Trading
  4. 在职场需看懂的几种表现
  5. 摄像头在线测试_Leez学院| 面部检测 精准可靠 Leez P515 OpenCV工程测试
  6. 信息安全技术——Many Time Pad攻击实验
  7. 四层高速dsp开发板制作7——绘制等长线
  8. h5首页加载慢_wap h5页怎样提高加载速度
  9. 加一行代码,让你的Python的运算速度加快100倍
  10. 实例6:圆周率的计算