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的Django框架来制作一个RSS阅读器
Jul 22 Python
matplotlib简介,安装和简单实例代码
Dec 26 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
May 30 Python
Flask框架各种常见装饰器示例
Jul 17 Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
春节到了 教你使用python来抢票回家
Jan 06 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 Python
10张动图学会python循环与递归问题
Feb 06 Python
Python IO文件管理的具体使用
Mar 20 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 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 编写的日历
2006/10/09 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
php编写的一个E-mail验证类
2015/03/25 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
js实现图片360度旋转
2017/01/22 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
js实现窗口全屏示例详解
2019/09/17 Javascript
Python中str is not callable问题详解及解决办法
2017/02/10 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
Django后台admin的使用详解
2019/07/08 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
Python的形参和实参使用方式
2019/12/24 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
汇智创新科技发展有限公司
2015/12/06 面试题
结婚邀请函范文
2014/01/14 职场文书
致跳远运动员广播稿
2014/02/11 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
法律专业求职信
2014/05/24 职场文书
公司副总经理任命书
2014/06/05 职场文书
社团活动总结报告
2014/06/27 职场文书
护理学专业求职信
2014/06/29 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
工作后的感想
2015/08/07 职场文书
创业计划书之便利店
2019/09/05 职场文书
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python