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中的choice()方法使用详解
May 15 Python
Linux 发邮件磁盘空间监控(python)
Apr 23 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
Python基于whois模块简单识别网站域名及所有者的方法
Apr 23 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
将pandas.dataframe的数据写入到文件中的方法
Dec 07 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
使用pandas的box_plot去除异常值
Dec 10 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
Python使用xpath实现图片爬取
Sep 16 Python
Python之qq自动发消息的示例代码
Feb 18 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
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
javascript每日必学之循环
2016/02/19 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
学习使用Bootstrap栅格系统
2017/05/11 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
JavaScript使用setTimeout实现倒计时效果
2021/02/19 Javascript
详解Python的Django框架中的中间件
2015/07/24 Python
Python模拟登陆实现代码
2017/06/14 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
自主招生自荐书
2013/11/29 职场文书
成龙洗发水广告词
2014/03/14 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
最新最全的手机号验证正则表达式
2022/02/24 Javascript