在tensorflow中实现去除不足一个batch的数据
我就废话不多说了,直接上代码吧!
#-*- coding:utf-8 -*- import tensorflow as tf import numpy as np value1 = tf.placeholder(dtype=tf.float32) value2 = tf.placeholder(dtype=tf.float32) value3 = value1 + value2 #定义的dataset有参数,只能使用参数化迭代器 dataset = tf.data.Dataset.range(10) # 定义参数化迭代器 dataset = dataset.shuffle(100) dataset = dataset.apply(tf.contrib.data.batch_and_drop_remainder(3)) #每个batch3个数据,不足3个舍弃 iterator = dataset.make_initializable_iterator() next_element = iterator.get_next() with tf.Session() as sess: # 需要用参数初始化迭代器 for i in range(2): sess.run(iterator.initializer) while True: try: value = sess.run(next_element) result = sess.run(value3,feed_dict={value1:value,value2:value}) print(result) except tf.errors.OutOfRangeError: print("End of epoch %d" % i) break
以上这篇在tensorflow中实现去除不足一个batch的数据就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
tensorflow入门:TFRecordDataset变长数据的batch读取详解
在上一篇文章tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用里,讲到了使用如何使用tf.data.TFRecordDatase来对tfrecord文件进行batch读取,即使用dataset的batch方法进行:但如果每条数据的长度不一样(常见于语音.视频.NLP等领域),则不能直接用batch方法获取数据,这时则有两个解决办法: 1.在把数据写入tfrecord时,先把数据pad到统一的长度再写入tfrecord:这个方法的问题在于:若是有大量
-
详解Tensorflow数据读取有三种方式(next_batch)
Tensorflow数据读取有三种方式: Preloaded data: 预加载数据 Feeding: Python产生数据,再把数据喂给后端. Reading from file: 从文件中直接读取 这三种有读取方式有什么区别呢? 我们首先要知道TensorFlow(TF)是怎么样工作的. TF的核心是用C++写的,这样的好处是运行快,缺点是调用不灵活.而Python恰好相反,所以结合两种语言的优势.涉及计算的核心算子和运行框架是用C++写的,并提供API给Python.Python调用这些A
-
Tensorflow中使用tfrecord方式读取数据的方法
前言 本博客默认读者对神经网络与Tensorflow有一定了解,对其中的一些术语不再做具体解释.并且本博客主要以图片数据为例进行介绍,如有错误,敬请斧正. 使用Tensorflow训练神经网络时,我们可以用多种方式来读取自己的数据.如果数据集比较小,而且内存足够大,可以选择直接将所有数据读进内存,然后每次取一个batch的数据出来.如果数据较多,可以每次直接从硬盘中进行读取,不过这种方式的读取效率就比较低了.此篇博客就主要讲一下Tensorflow官方推荐的一种较为高效的数据读取方式--tfre
-
tensorflow tf.train.batch之数据批量读取方式
在进行大量数据训练神经网络的时候,可能需要批量读取数据.于是参考了这篇文章的代码,结果发现数据一直批量循环输出,不会在数据的末尾自动停止. 然后发现这篇博文说slice_input_producer()这个函数有一个形参num_epochs,通过设置它的值就可以控制全部数据循环输出几次. 于是我设置之后出现以下的报错: tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninit
-
在tensorflow中实现去除不足一个batch的数据
我就废话不多说了,直接上代码吧! #-*- coding:utf-8 -*- import tensorflow as tf import numpy as np value1 = tf.placeholder(dtype=tf.float32) value2 = tf.placeholder(dtype=tf.float32) value3 = value1 + value2 #定义的dataset有参数,只能使用参数化迭代器 dataset = tf.data.Dataset.range(1
-
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
batch很好理解,就是batch size.注意在一个epoch中最后一个batch大小可能小于等于batch size dataset.repeat就是俗称epoch,但在tf中与dataset.shuffle的使用顺序可能会导致个epoch的混合 dataset.shuffle就是说维持一个buffer size 大小的 shuffle buffer,图中所需的每个样本从shuffle buffer中获取,取得一个样本后,就从源数据集中加入一个样本到shuffle buffer中. imp
-
关于Tensorflow中的tf.train.batch函数的使用
这两天一直在看tensorflow中的读取数据的队列,说实话,真的是很难懂.也可能我之前没这方面的经验吧,最早我都使用的theano,什么都是自己写.经过这两天的文档以及相关资料,并且请教了国内的师弟.今天算是有点小感受了.简单的说,就是计算图是从一个管道中读取数据的,录入管道是用的现成的方法,读取也是.为了保证多线程的时候从一个管道读取数据不会乱吧,所以这种时候 读取的时候需要线程管理的相关操作.今天我实验室了一个简单的操作,就是给一个有序的数据,看看读出来是不是有序的,结果发现是有序的,所以
-
tensorflow中next_batch的具体使用
本文介绍了tensorflow中next_batch的具体使用,分享给大家,具体如下: 此处给出了几种不同的next_batch方法,该文章只是做出代码片段的解释,以备以后查看: def next_batch(self, batch_size, fake_data=False): """Return the next `batch_size` examples from this data set.""" if fake_data: fake_i
-
对Tensorflow中权值和feature map的可视化详解
前言 Tensorflow中可以使用tensorboard这个强大的工具对计算图.loss.网络参数等进行可视化.本文并不涉及对tensorboard使用的介绍,而是旨在说明如何通过代码对网络权值和feature map做更灵活的处理.显示和存储.本文的相关代码主要参考了github上的一个小项目,但是对其进行了改进. 原项目地址为(https://github.com/grishasergei/conviz). 本文将从以下两个方面进行介绍: 卷积知识补充 网络权值和feature map的可
-
对tensorflow中的strides参数使用详解
在二维卷积函数tf.nn.conv2d(),最大池化函数tf.nn.max_pool(),平均池化函数 tf.nn.avg_pool()中,卷积核的移动步长都需要制定一个参数strides(步长),因为无论是卷积操作还是各种类型的池化操作,都是某种形式的滑动窗口(sliding window)处理,这就要求指定从当前窗口移动下一个窗口位置的移动步长. TensorFlow 文档关于 strides的说明如下: strides: A list of ints that has length >=
-
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
三维的读取图片(w, h, c): import tensorflow as tf import glob import os def _parse_function(filename): # print(filename) image_string = tf.read_file(filename) image_decoded = tf.image.decode_image(image_string) # (375, 500, 3) image_resized = tf.image.resize
-
对tensorflow中cifar-10文档的Read操作详解
前言 在tensorflow的官方文档中得卷积神经网络一章,有一个使用cifar-10图片数据集的实验,搭建卷积神经网络倒不难,但是那个cifar10_input文件着实让我费了一番心思.配合着官方文档也算看的七七八八,但是中间还是有一些不太明白,不明白的mark一下,这次记下一些已经明白的. 研究 cifar10_input.py文件的read操作,主要的就是下面的代码: if not eval_data: filenames = [os.path.join(data_dir, 'data_b
随机推荐
- Angular4实现鼠标悬停3d倾斜效果
- 连接Oracle数据库时报ORA-12541:TNS:无监听程序的图文解决教程
- JS与HTML结合使用marquee标签实现无缝滚动效果代码
- 详解angular2封装material2对话框组件
- java中javamail发送带附件的邮件实现方法
- android高仿微信表情输入与键盘输入代码(详细实现分析)
- Spring boot实现一个简单的ioc(1)
- Java编程通过list接口实现数据的增删改查代码示例
- Java虚拟机JVM性能优化(三):垃圾收集详解
- 纯HTML5制作围住神经猫游戏-附源码下载
- php使用parse_url和parse_str解析URL
- thinkPHP实现瀑布流的方法
- ThinkPHP中create()方法自动验证实例
- C# JavaScriptSerializer序列化时的时间处理详解
- Asp Conn.execute的参数与返回值总结
- 了解WEB页面工具语言XML(五)好处
- 纯js实现图片匀速淡入淡出效果
- uniqueidentifier转换成varchar数据类型的sql语句
- SQL语句实现删除ACCESS重复记录的两种方法
- Javascript 世界时区时间显示代码