SSD-Tensorflow 512x512 训练配置
搞了几天终于把这个给搞得差不多了,遇到的错误这里也记录一下:
一、配置【配置什么的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...
SSD-Tensorflow 512x512 训练配置的更多相关文章
- 【目标检测】SSD+Tensorflow 300&512 配置详解
SSD_300_vgg和SSD_512_vgg weights下载链接[需要科学上网~]: Model Training data Testing data mAP FPS SSD-300 VGG-b ...
- Tensorflow开发环境配置及其基本概念
Tensorflow开发环境配置及其基本概念 1.1. 安装Tensorflow开发环境 1.1.1. 安装pycharm 1.1.2. 安装pythe3.6 1.1.3. 安装Tensorflow ...
- 在 C/C++ 中使用 TensorFlow 预训练好的模型—— 直接调用 C++ 接口实现
现在的深度学习框架一般都是基于 Python 来实现,构建.训练.保存和调用模型都可以很容易地在 Python 下完成.但有时候,我们在实际应用这些模型的时候可能需要在其他编程语言下进行,本文将通过直 ...
- 在 C/C++ 中使用 TensorFlow 预训练好的模型—— 间接调用 Python 实现
现在的深度学习框架一般都是基于 Python 来实现,构建.训练.保存和调用模型都可以很容易地在 Python 下完成.但有时候,我们在实际应用这些模型的时候可能需要在其他编程语言下进行,本文将通过 ...
- 安装 tensorflow 1.1.0;以及安装其他相似版本tensorflow遇到的问题;tensorflow 1.13.2 cuda-10环境变量配置问题;Tensorflow 指定训练时如何指定使用的GPU;
# 安装 2.7 环境conda create -n python2. python= conda activate python2. # 安装 1.1.0 gpu版本pip # 配置环境变量expo ...
- 利用阿里云容器服务打通TensorFlow持续训练链路
本系列将利用Docker和阿里云容器服务,帮助您上手TensorFlow的机器学习方案 第一篇:打造TensorFlow的实验环境 第二篇:轻松搭建TensorFlow Serving集群 第三篇:打 ...
- 在C#下使用TensorFlow.NET训练自己的数据集
在C#下使用TensorFlow.NET训练自己的数据集 今天,我结合代码来详细介绍如何使用 SciSharp STACK 的 TensorFlow.NET 来训练CNN模型,该模型主要实现 图像的分 ...
- Tensorflow使用环境配置
windows中不能直接使用Tensorflow,所以得费点劲.(2016.11.29更新,TensorFlow 0.12 中已加入初步的 Windows 原生支持) 先是直接使用了<Deep ...
- Ubuntu 14.04 关于 TensorFlow 环境的配置
Ubuntu 14.04 关于 TensorFlow 环境的配置 本教程截图于 TensorFlow 官方文档中文版 https://github.com/jikexueyuanwiki/ten ...
随机推荐
- hibernate数据库连接池,常用配置
<!-- 最大连接数 --> <property name="hibernate.c3p0.max_size">20</property> &l ...
- Spring 自动装配机制
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...
- kubeadm部署1.17.3[基于Ubuntu18.04]
基于 Ubuntu18.04 使用 kubeadm 部署Kubernetes 1.17.3 高可用集群 环境 所有节点初始化 # cat <<EOF>> /etc/hosts ...
- 15、Java中级进阶 面向对象 继承
1.何为面向对象 其本质是以建立模型体现出来的抽象思维过程和面向对象的方法(百度百科)是一种编程思维,也是一种思考问题的方式 如何建立面向对象的思维呢?1.先整体,再局部2.先抽象,再具体3.能做什么 ...
- 社区观点 | 关于比原链MOV巡查官制度的几点思考
在ChainNode白皮书解密读书会01期活动中,比原链高级研究员刘秋杉带领大家领读「MOV:下一代去中心跨链 Layer 2 价值交换协议」白皮书,得到了很多粉丝的关注,其中gentledog的读书 ...
- db2 创建function报错
create function fun_fw_sfyczy(pi_operunitid varchar(2)) returns varchar(2)LANGUAGE SQL BEGIN ATOMIC ...
- C# ASP response.write()弹出提示框后页面布局被打乱
发现在使用了response.write后样式发生了变化,位置和字体都不正确.Response.Write("<script>alert(')</script>&qu ...
- Go 语言中,有时 nil 并不是一个 nil
今天,我遇到了一个 Go FAQ.首先,作为一个小小的 Go 语言测验,看看您是否在 Go playground 中运行该程序之前就能推断出它应该打印出的内容(我已经将程序放在侧边栏中,以防它在 Go ...
- C#LeetCode刷题-图
图篇 # 题名 刷题 通过率 难度 133 克隆图 18.7% 中等 207 课程表 40.0% 中等 210 课程表 II 40.0% 中等 310 最小高度树 29.5% 中等 3 ...
- C#LeetCode刷题之#112-路径总和(Path Sum)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4078 访问. 给定一个二叉树和一个目标和,判断该树中是否存在根节 ...