python版本对ckpt文件大小的影响

前言

一个偶然的因素,发现了同一个网络结构,自己训练出来的ckpt文件中meta文件的有两种大小规格。仔细查找后,发现是所用的python环境不一样(也有可能是tensorflow版本的影响)。同时试了一下两个python版本的差别。

环境配置

 

  
系统Ubuntu 16.04
显卡1080Ti
cudacuda8+cudnn6
python2python2.7.3+tensorflow-gpu 1.2.0
python3python3.5.2+tensorflow-gpu 1.8.0

网络结构

inception-resnet-V1
batch_size(train)128
batch_size(test)128

训练结果

在不改变网络结构的前提下,只是改变python环境,结果如下表所示:

python版本data文件meta文件训练速度测试结果其他问题
python2.7273.6M176.4M132s/250step95.96%训练后的cpkt模型可以接着被python3.5接着训练
python3.5273.6M67.3M108s/250step96.02%训练后的cpkt模型可以接着被python2.7接着训练

关于上表解释一下:

meta文件:在用python2.7与python3.5训练出来的模型中,meta文件的大小不一样!!用tensorboard打开的图是一样的。这可  能是里面的编码不一样了?

训练速度:网络结构没有修改的情况下,batch_size都是128,每250步打印一次间隔的时间。稳定后取的值,python3.5的训练速度会快很多;

测试结果:测试的时候也是用128每个批次进行测试,一共2800+张测试图片。初步猜测会不是是两个版本的计算方式不同?一个是计算总体的平均值,一个是计算批次的平均值?

其他:无论用python3.5或者是python2.7训练的结果,测试的时候都可以用python2.7或者python3.5测试。

测试结果

昨天无聊玩了一下训练的过程。今天心血来潮,玩了一个测试的过程。

测试过程如下:

1.事先保存了由python2.7训练出的模型,然后切换到pyhon3.5继续训练10步保存成新的模型;

2.模型是由检测目标后,然后再投入到第二个模型中分类。所以会分别再python2和python3的环境中检测两部分所需的时间;

3.每次测试用五张图片轮流测试,得出每张图片在每个过程所需的时间,再求均值。

结果如下表:

                            python2.7环境下测试                                  python3.5环境下测试
        2.7训练出的模型      3.5训练出的模型       2.7训练出的模型     3.5训练出的模型
检测目标所需时间0.45/0.44/0.44/0.43/0.510.43/0.44/0.44/0.44/0.50 1.00/1.01/0.99/1.01/1.050.57/0.65/0.60/0.60/0.64
分类网络所需时间5.7/4.84/4.82/4.79/4.814.80/4.78/4.80/4.80/4.78 7.87/7.84/7.85/7.89/7.874.6/4.43/4.86/4.89/4.52
均值0.454+4.992=5.446s0.45+4.792=5.242s 1.021+7.864=8.885s0.612+4.66=5.272s

从上图看出,如果用2.7训练的模型,用3.5测试,速度会下降很多!

当然,也有可能是因为tensorflow版本引起的以上的问题,但是懒得进行再次的尝试测试了。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值