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中apply函数的用法实例教程
Jul 31 Python
Python中设置变量作为默认值时容易遇到的错误
Apr 03 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
Python中Threading用法详解
Dec 27 Python
python中的闭包函数
Feb 09 Python
Python3 批量扫描端口的例子
Jul 25 Python
python识别文字(基于tesseract)代码实例
Aug 24 Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 Python
python tornado修改log输出方式
Nov 18 Python
cookies应对python反爬虫知识点详解
Nov 25 Python
Python离线安装openpyxl模块的步骤
Mar 30 Python
详解如何用Python实现感知器算法
Jun 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
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
jquery 问答知识整理
2010/02/11 Javascript
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
动态的创建一个元素createElement及删除一个元素
2014/01/24 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
python浪漫表白源码
2019/04/05 Python
python实现电子书翻页小程序
2019/07/23 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
详解rem 适配布局
2018/10/31 HTML / CSS
工程专业求职自荐书范文
2014/02/18 职场文书
法律专业求职信
2014/05/24 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书