tensorflow之tf.record实现存浮点数数组


Posted in Python onFebruary 17, 2020

因为最近打算转战Tensorflow,我将自己的脑部肿瘤分割课题从caffe转移到tensorflow上去

然后我将数据存到Tf.record里面去,出现来不收敛,以及精度上不去的等现象。

最终原因是:数据 存入tf.record,我转为二进制也就是使用来tobytes()函数,再将数据存入tf.record,浮点数以二进制存入会有精度丢失问题。

其实:当发现这个精度上不去的现象之后,我第一反应就是是不是精度丢失,然后上网跟别人交流,告诉我不可能是精度丢失,不信让我输出来看,结果我输出来看后,发现数值确实没有变化,所以就放弃来这个精度丢失的方向,转而去找别的方向,结果几经周折,无果之后,再来尝试这个,发现,确实是转为二进制导致来精度丢失(确实浪费来我很多精力,甚至一度想放弃)。

经验教训:跟别人交流,一定要保持理性,可以尝试别人的方法,但是不能丢掉自己的想法,因为没有人比你自己更了解你的项目。

下面来讲讲,如何将浮点数组存进tf.record:简单记录,不懂可以评论:

import tensorflow as tf
import numpy as np
 
def _floats_feature(value):
  #这里的value=后面没有括号
  #千万不要写成return tf.train.Feature(float_list=tf.train.FloatList(value=[value]))
  return tf.train.Feature(float_list=tf.train.FloatList(value=value))
 
# data you would like to save, dtype=float32
#这里我生成了一个浮点数数组,来假定作为我的数据
data = np.random.randn(shape=(5, 5))
#这里一定要铺平,不然存不进去
data = data.flatten()
 
 
# open tfrecord file
writer = tf.python_io.TFRecordWriter(train_data_path)
 
# make train example
example = tf.train.Example(features=tf.train.Features(
  feature={'data': _floats_feature(data)}))
 
# write on the file
writer.write(example.SerializeToString())

这就是存数据了,下一步读取数据,一定要注意将原来铺平的数据reshape为原来的形状。

# open tfrecorder reader
reader = tf.TFRecordReader()
 
# read file
_, serialized_example = reader.read(filename_queue)
 
# read data
features = tf.parse_single_example(serialized_example,
  features={'data': tf.VarLenFeature(tf.float32)})
 
# make it dense tensor
data = tf.sparse_tensor_to_dense(features['data'], default_value=0)
 
# reshape
data = tf.reshape(data, [5,5])
 
return tf.train.batch(data, batch_size, num_threads, capacity)

以上这篇tensorflow之tf.record实现存浮点数数组就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之集成开发环境(IDE)
Sep 12 Python
Python使用MONGODB入门实例
May 11 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
对Python3中的input函数详解
Apr 22 Python
详解Python if-elif-else知识点
Jun 11 Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 Python
python实现维吉尼亚算法
Mar 20 Python
​如何愉快地迁移到 Python 3
Apr 28 Python
Python爬虫动态ip代理防止被封的方法
Jul 07 Python
用python建立两个Y轴的XY曲线图方法
Jul 08 Python
python的移位操作实现详解
Aug 21 Python
Python读取表格类型文件代码实例
Feb 17 #Python
基于Python获取docx/doc文件内容代码解析
Feb 17 #Python
Python多线程获取返回值代码实例
Feb 17 #Python
Python实现ATM系统
Feb 17 #Python
python设置环境变量的作用整理
Feb 17 #Python
python数据爬下来保存的位置
Feb 17 #Python
使用TFRecord存取多个数据案例
Feb 17 #Python
You might like
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
php URL验证正则表达式
2011/07/19 PHP
php列出一个目录下的所有文件的代码
2012/10/09 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
PHP函数积累总结
2019/03/19 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
JavaScript加强之自定义callback示例
2013/09/21 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
js 删除数组的几种方法小结
2014/02/21 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
vue使用keep-alive实现组件切换时保存原组件数据方法
2020/10/30 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
详解python中的线程与线程池
2019/05/10 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
党员干部三严三实心得体会
2014/10/13 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
工作简历自我评价
2015/03/11 职场文书
毕业典礼主持词
2015/06/29 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL
python之json文件转xml文件案例讲解
2021/08/07 Python