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中ConfigParse模块的用法
Sep 29 Python
Python的面向对象思想分析
Jan 14 Python
Python使用dis模块把Python反编译为字节码的用法详解
Jun 14 Python
python下setuptools的安装详解及No module named setuptools的解决方法
Jul 06 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
Sep 13 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
Aug 13 Python
python 实现让字典的value 成为列表
Dec 16 Python
基于numpy中的expand_dims函数用法
Dec 18 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
Python字符串查找基本操作代码案例
Oct 27 Python
python3实现无权最短路径的方法
May 12 Python
Python闭包的定义和使用方法
Apr 11 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 时间计算问题小结
2009/01/04 PHP
PHP 源代码压缩小工具
2009/12/22 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
js实现数字每三位加逗号的方法
2015/02/05 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
2016/06/12 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
Python中super函数的用法
2017/11/17 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
Html5自定义字体解决方法
2019/10/09 HTML / CSS
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
String是最基本的数据类型吗?
2013/06/13 面试题
银行自荐信范文
2013/10/07 职场文书
行政人员岗位职责
2013/12/08 职场文书
优秀员工评语
2014/02/10 职场文书
高考励志标语
2014/06/05 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
JavaScript 数组去重详解
2021/09/15 Javascript
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技