tensorflow,object,detection,在model zoom,新下载的模型,WARNING:root:Variable [resnet_v1_50/block1/unit_3/bottleneck_v1/conv3/BatchNorm/gamma] is not available in checkpoint
现象:
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/BatchNorm/beta] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/BatchNorm/beta/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/BatchNorm/gamma] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/BatchNorm/gamma/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/BatchNorm/moving_mean] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/BatchNorm/moving_variance] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/weights] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/weights/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv2/BatchNorm/beta] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv2/BatchNorm/beta/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv2/BatchNorm/gamma] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv2/BatchNorm/gamma/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv2/BatchNorm/moving_mean] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv2/BatchNorm/moving_variance] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv2/weights] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv2/weights/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv3/BatchNorm/beta] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv3/BatchNorm/beta/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv3/BatchNorm/gamma] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv3/BatchNorm/gamma/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv3/BatchNorm/moving_mean] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv3/BatchNorm/moving_variance] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv3/weights] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv3/weights/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/shortcut/BatchNorm/beta] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/shortcut/BatchNorm/beta/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/shortcut/BatchNorm/gamma] is not available in checkpoint
这个报的warning是你要的变量在 checkpoint里面找不到!!!!!!!!!!!
那checkpoint里面是什么?????????????那就去看咯:
然后就吧checkpoint的信息打印出来:
import tensorflow as tf
from tensorflow.python.tools.inspect_checkpoint import print_tensors_in_checkpoint_file
latest_ckp = tf.train.latest_checkpoint('./') # checkpoint 所在的路径是当前文件夹(./),如果是其他,请改过来
print_tensors_in_checkpoint_file(latest_ckp, all_tensors=True, tensor_name='')
然后发现:
tensor_name: FeatureExtractor/resnet_v1_50/block4/unit_2/bottleneck_v1/conv3/BatchNorm/beta
[-1.2371869 -1.3236059 -1.2312554 ... -1.3017322 -1.2117504 -1.4911506]
tensor_name: FeatureExtractor/resnet_v1_50/block4/unit_2/bottleneck_v1/conv3/BatchNorm/gamma
[1.4568403 1.4048293 1.0624585 ... 1.1037463 1.0324904 1.0967498]
tensor_name: FeatureExtractor/resnet_v1_50/block4/unit_2/bottleneck_v1/conv3/BatchNorm/moving_mean
[-0.08689928 0.00798311 -0.02823892 ... -0.04347016 -0.07710622
-0.04719209]
tensor_name: FeatureExtractor/resnet_v1_50/block4/unit_2/bottleneck_v1/conv3/BatchNorm/moving_variance
[0.00452107 0.00487971 0.00305854 ... 0.00261809 0.00344088 0.00306313]
tensor_name: FeatureExtractor/resnet_v1_50/block4/unit_2/bottleneck_v1/conv3/weights
[[[[ 1.2295754e-03 -9.4967345e-03 -6.6470391e-05 ... -9.7579239e-03
1.1851139e-02 -1.0630138e-02]
[-4.5038795e-04 -3.9205588e-03 -6.4933673e-03 ... 9.1390898e-03
-1.1232623e-02 -9.8358802e-03]
[ 1.3918030e-02 -7.1829297e-03 3.0942420e-03 ... -6.6203251e-03
原来是少了FeatureExtractor,这时候就去找restore var 的code
var_name = (
re.split('^' + self._extract_features_scope + '/',
var_name)[-1])
他把这个给干掉了,所以:_extract_features_scope就是:FeatureExtractor
发现
问题是,tensorflow object detection 在model zoom新下载的模型命名方式改变了,如果使用旧的代码加载新的模型就会出现这个问题,解决方案是research/object_detection/meta_architectures/ssd_meta_arch.py
var_name = (
re.split('^' + self._extract_features_scope + '/',
var_name)[-1])
改为:
var_name = (
re.split('^' + '/',
var_name)[-1])
同样的其他模型也是这样。
但是,后面还是出现:
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/BatchNorm/beta/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/BatchNorm/gamma/Momentum] is not available in checkpoint
WARNING:root:Variable [resnet_v1_50/block1/unit_1/bottleneck_v1/conv1/weights/Momentum] is not available in checkpoint
仔细看,你会发现,这只是Momentum造成的,是优化器中的参数,不是模型参数,Momentum是动量的意思,优化器使用这个是为了
避免收敛到局部极值。這個不影響的。如果不想報錯可以:
if fine_tune_checkpoint_type == 'classification':
var_name = (
re.split('^' + '/',
var_name)[-1])
# var_name = (
# re.split('^' + self._extract_features_scope + '/',
# var_name)[-1])
if 'Momentum' in var_name:
continue
variables_to_restore[var_name] = variable
加一個:
if 'Momentum' in var_name:
continue
如果是Moment 變量就不加載。
不过,如果对这套代码不了解的,建议update最新的代码。
tensorflow,object,detection,在model zoom,新下载的模型,WARNING:root:Variable [resnet_v1_50/block1/unit_3/bottleneck_v1/conv3/BatchNorm/gamma] is not available in checkpoint的更多相关文章
- TensorFlow Object Detection API中的Faster R-CNN /SSD模型参数调整
关于TensorFlow Object Detection API配置,可以参考之前的文章https://becominghuman.ai/tensorflow-object-detection-ap ...
- [Tensorflow] Object Detection API - predict through your exclusive model
开始预测 一.训练结果 From: Testing Custom Object Detector - TensorFlow Object Detection API Tutorial p.6 训练结果 ...
- TensorFlow object detection API应用
前一篇讲述了TensorFlow object detection API的安装与配置,现在我们尝试用这个API搭建自己的目标检测模型. 一.准备数据集 本篇旨在人脸识别,在百度图片上下载了120张张 ...
- TensorFlow object detection API应用--配置
目标检测在图形识别的基础上有了更进一步的应用,但是代码也更加繁琐,TensorFlow专门为此开设了一个object detection API,接下来看看怎么使用它. object detectio ...
- 对于谷歌开源的TensorFlow Object Detection API视频物体识别系统实现教程
本教程针对Windows10实现谷歌近期公布的TensorFlow Object Detection API视频物体识别系统,其他平台也可借鉴. 本教程将网络上相关资料筛选整合(文末附上参考资料链接) ...
- Tensorflow object detection API(1)---环境搭建与测试
参考: https://blog.csdn.net/dy_guox/article/details/79081499 https://blog.csdn.net/u010103202/article/ ...
- 基于TensorFlow Object Detection API进行迁移学习训练自己的人脸检测模型(二)
前言 已完成数据预处理工作,具体参照: 基于TensorFlow Object Detection API进行迁移学习训练自己的人脸检测模型(一) 设置配置文件 新建目录face_faster_rcn ...
- 使用Tensorflow Object Detection进行训练和推理
整体流程(以PASCAL VOC为例) 1.下载PASCAL VOC2012数据集,并将数据集转为tfrecord格式 2.选择并下载预训练模型 3.配置训练文件configuration(所有的训练 ...
- TensorFlow Object Detection API(Windows下训练)
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 最近事情比较多,前面坑挖的有点久,今天终于有时间总结一下,顺便把Windows下训练跑通.Li ...
随机推荐
- QQ群成员发言次数统计(词云制作)
所用数据来自于之前的一篇博客: <QQ群成员发言次数统计(正则表达式版)> 链接:http://www.cnblogs.com/liyongzhao/p/3324026.html 1.首先 ...
- ajax高级操作
$('#ajax_submit').click(function () { $.ajax({ 'url':'/app_ajax', 'type':'post', 'data':$("#f1& ...
- vue+nginx编译部署
1.项目路径下vue-test输入命令npm run build编译完成后会发现在vue-test文件夹下多出一个dist文件夹这里面就是编译好的文件了.2.网上下载nginx,下载地址http:// ...
- python 画图工具matplotlib 去掉坐标轴和坐标的方法
1. 去掉坐标轴的方法: plt.axis('off') 2.去掉刻度的方法: plt.xticks([]) plt.yticks([]) 以上语句需要将其置于 plt.show() 之前,plt.i ...
- Gradle的使用及下载
1在官网下载Gradle 基本学这个的都有JDK和JVM所以只需要在环境变量中配置即可 点击hettp://start.spring.io/即可使用
- postfix配置&使用
myorigin = $mydomain #以“user@example.com”(而不是“user@hostname.example.com”)发送邮件, #这样就没有理由将邮件发送到“user@h ...
- 屏蔽F12审查元素,禁止使用右键菜单
一.屏蔽F12审查元素 <script type="text/javascript"> document.onkeydown = function() { ) { al ...
- monodepth 训练记录
2019年2月22日13:52:37 https://zhuanlan.zhihu.com/p/29968267 这里有个tensorlfow代码的阅读博客: https://zhuanlan.zhi ...
- listview-android:打造万能通用适配器(转)
转载:https://blog.csdn.net/q649381130/article/details/51781921: 1.前言 listview作为安卓项目中一个的明星控件,它的适配器的写法是广 ...
- sass 和less 分别在循环 和超出省略方面的区别!
这两天在迁项目,新项目支持less预处理器,之前是采用的sass,就出现一些冲突,好在有对应的转换方式,重点说下 我遇到的2个问题 1:超出省略 sass: 声明: 在需要的地方: less: 在使用 ...