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中input和raw_input的一点区别
Oct 21 Python
Python复制文件操作实例详解
Nov 10 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
Python中的__slots__示例详解
Jul 06 Python
Django实现表单验证
Sep 08 Python
python 同时读取多个文件的例子
Jul 16 Python
Python笔记之工厂模式
Nov 20 Python
pytorch实现mnist分类的示例讲解
Jan 10 Python
Python实现FLV视频拼接功能
Jan 21 Python
tensorflow使用指定gpu的方法
Feb 04 Python
Python编写memcached启动脚本代码实例
Aug 14 Python
Django如何批量创建Model
Sep 01 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 5.0对象模型深度探索之绑定
2006/09/05 PHP
Apache2 httpd.conf 中文版
2006/12/06 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
php实现的通用图片处理类
2015/03/24 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
php实现简单爬虫的开发
2016/03/28 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
Javascript select下拉框操作常用方法
2009/11/09 Javascript
根据一段代码浅谈Javascript闭包
2010/12/14 Javascript
jquery操作select大全
2014/04/25 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
2017/02/09 Javascript
JS验证不重复验证码
2017/02/10 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
python 8种必备的gui库
2020/08/27 Python
html5 canvas 使用示例
2010/10/22 HTML / CSS
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
商务英语专业自荐信
2013/10/14 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
精神文明建设标语
2014/06/16 职场文书
党员转正介绍人意见
2015/06/03 职场文书
刘胡兰观后感
2015/06/16 职场文书