参考书

《TensorFlow:实战Google深度学习框架》(第2版)

例子:从一个张量创建一个数据集,遍历这个数据集,并对每个输入输出y = x^2 的值。

  1. #!/usr/bin/env python
  2. # -*- coding: UTF-8 -*-
  3. # coding=utf-8
  4.  
  5. """
  6. @author: Li Tian
  7. @contact: 694317828@qq.com
  8. @software: pycharm
  9. @file: dataset_test1.py
  10. @time: 2019/2/10 10:52
  11. @desc: 例子:从一个张量创建一个数据集,遍历这个数据集,并对每个输入输出y = x^2 的值。
  12. """
  13.  
  14. import tensorflow as tf
  15.  
  16. # 从一个数组创建数据集。
  17. input_data = [1, 2, 3, 5, 8]
  18. dataset = tf.data.Dataset.from_tensor_slices(input_data)
  19.  
  20. # 定义一个迭代器用于遍历数据集。因为上面定义的数据集没有用placeholder作为输入参数
  21. # 所以这里可以使用最简单的one_shot_iterator
  22. iterator = dataset.make_one_shot_iterator()
  23. # get_next() 返回代表一个输入数据的张量,类似于队列的dequeue()。
  24. x = iterator.get_next()
  25. y = x * x
  26.  
  27. with tf.Session() as sess:
  28. for i in range(len(input_data)):
  29. print(sess.run(y))

运行结果:

数据是文本文件:创建数据集。

  1. #!/usr/bin/env python
  2. # -*- coding: UTF-8 -*-
  3. # coding=utf-8
  4.  
  5. """
  6. @author: Li Tian
  7. @contact: 694317828@qq.com
  8. @software: pycharm
  9. @file: dataset_test2.py
  10. @time: 2019/2/10 11:03
  11. @desc: 数据是文本文件
  12. """
  13.  
  14. import tensorflow as tf
  15.  
  16. # 从文本文件创建数据集。假定每行文字是一个训练例子。注意这里可以提供多个文件。
  17. input_files = ['./input_file11', './input_file22']
  18. dataset = tf.data.TextLineDataset(input_files)
  19.  
  20. # 定义迭代器用于遍历数据集
  21. iterator = dataset.make_one_shot_iterator()
  22. # 这里get_next()返回一个字符串类型的张量,代表文件中的一行。
  23. x = iterator.get_next()
  24. with tf.Session() as sess:
  25. for i in range(4):
  26. print(sess.run(x))

运行结果:

数据是TFRecord文件:创建TFRecord测试文件。

  1. #!/usr/bin/env python
  2. # -*- coding: UTF-8 -*-
  3. # coding=utf-8
  4.  
  5. """
  6. @author: Li Tian
  7. @contact: 694317828@qq.com
  8. @software: pycharm
  9. @file: dataset_createdata.py
  10. @time: 2019/2/10 13:59
  11. @desc: 创建样例文件
  12. """
  13.  
  14. import tensorflow as tf
  15. from tensorflow.examples.tutorials.mnist import input_data
  16. import numpy as np
  17. import time
  18.  
  19. # 生成整数型的属性。
  20. def _int64_feature(value):
  21. return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))
  22.  
  23. # 生成字符串型的属性。
  24. def _bytes_feature(value):
  25. return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))
  26.  
  27. a = [11, 21, 31, 41, 51]
  28. b = [22, 33, 44, 55, 66]
  29.  
  30. # 输出TFRecord文件的地址
  31. filename = './input_file2'
  32. # 创建一个writer来写TFRecord文件
  33. writer = tf.python_io.TFRecordWriter(filename)
  34. for index in range(len(a)):
  35. aa = a[index]
  36. bb = b[index]
  37. # 将一个样例转化为Example Protocol Buffer,并将所有的信息写入这个数据结构。
  38. example = tf.train.Example(features=tf.train.Features(feature={
  39. 'feat1': _int64_feature(aa),
  40. 'feat2': _int64_feature(bb)
  41. }))
  42.  
  43. # 将一个Example写入TFRecord文件中。
  44. writer.write(example.SerializeToString())
  45. writer.close()

运行结果:

数据是TFRecord文件:创建数据集。(使用最简单的one_hot_iterator来遍历数据集)

  1. #!/usr/bin/env python
  2. # -*- coding: UTF-8 -*-
  3. # coding=utf-8
  4.  
  5. """
  6. @author: Li Tian
  7. @contact: 694317828@qq.com
  8. @software: pycharm
  9. @file: dataset_test3.py
  10. @time: 2019/2/10 13:16
  11. @desc: 数据是TFRecord文件
  12. """
  13.  
  14. import tensorflow as tf
  15.  
  16. # 解析一个TFRecord的方法。record是从文件中读取的一个样例。前面介绍了如何解析TFRecord样例。
  17. def parser(record):
  18. # 解析读入的一个样例
  19. features = tf.parse_single_example(
  20. record,
  21. features={
  22. 'feat1': tf.FixedLenFeature([], tf.int64),
  23. 'feat2': tf.FixedLenFeature([], tf.int64),
  24. }
  25. )
  26. return features['feat1'], features['feat2']
  27.  
  28. # 从TFRecord文件创建数据集。
  29. input_files = ['./input_file1', './input_file2']
  30. dataset = tf.data.TFRecordDataset(input_files)
  31.  
  32. # map()函数表示对数据集中的每一条数据进行调用相应方法。使用TFRecordDataset读出的是二进制的数据。
  33. # 这里需要通过map()函数来调用parser()对二进制数据进行解析。类似的,map()函数也可以用来完成其他的数据预处理工作。
  34. dataset = dataset.map(parser)
  35.  
  36. # 定义遍历数据集的迭代器
  37. iterator = dataset.make_one_shot_iterator()
  38.  
  39. # feat1, feat2是parser()返回的一维int64型张量,可以作为输入用于进一步的计算。
  40. feat1, feat2 = iterator.get_next()
  41.  
  42. with tf.Session() as sess:
  43. for i in range(10):
  44. f1, f2 = sess.run([feat1, feat2])
  45. print(f1, f2)

运行结果:

数据是TFRecord文件:创建数据集。(使用placeholder和initializable_iterator来动态初始化数据集)

  1. #!/usr/bin/env python
  2. # -*- coding: UTF-8 -*-
  3. # coding=utf-8
  4.  
  5. """
  6. @author: Li Tian
  7. @contact: 694317828@qq.com
  8. @software: pycharm
  9. @file: dataset_test4.py
  10. @time: 2019/2/10 13:44
  11. @desc: 用initializable_iterator来动态初始化数据集的例子
  12. """
  13.  
  14. import tensorflow as tf
  15. from figuredata_deal.dataset_test3 import parser
  16.  
  17. # 解析一个TFRecord的方法。与上面的例子相同不再重复。
  18. # 从TFRecord文件创建数据集,具体文件路径是一个placeholder,稍后再提供具体路径。
  19. input_files = tf.placeholder(tf.string)
  20. dataset = tf.data.TFRecordDataset(input_files)
  21. dataset = dataset.map(parser)
  22.  
  23. # 定义遍历dataset的initializable_iterator
  24. iterator = dataset.make_initializable_iterator()
  25. feat1, feat2 = iterator.get_next()
  26.  
  27. with tf.Session() as sess:
  28. # 首先初始化iterator,并给出input_files的值。
  29. sess.run(iterator.initializer, feed_dict={input_files: ['./input_file1', './input_file2']})
  30.  
  31. # 遍历所有数据一个epoch,当遍历结束时,程序会抛出OutOfRangeError
  32. while True:
  33. try:
  34. sess.run([feat1, feat2])
  35. except tf.errors.OutOfRangeError:
  36. break

运行结果:

TensorFlow数据集(一)——数据集的基本使用方法的更多相关文章

  1. 一个简单的TensorFlow可视化MNIST数据集识别程序

    下面是TensorFlow可视化MNIST数据集识别程序,可视化内容是,TensorFlow计算图,表(loss, 直方图, 标准差(stddev)) # -*- coding: utf-8 -*- ...

  2. 获取器操作都是针对数据而不是数据集的,要通过append()方法添加数据表不存在的字段

    获取器操作都是针对数据而不是数据集的,要通过append()方法添加数据表不存在的字段 public function getMembership(){ //加入会员s_id = 1 $busines ...

  3. tensorflow实现基于LSTM的文本分类方法

    tensorflow实现基于LSTM的文本分类方法 作者:u010223750 引言 学习一段时间的tensor flow之后,想找个项目试试手,然后想起了之前在看Theano教程中的一个文本分类的实 ...

  4. Tensorflow读取大数据集的方法,tf.train.string_input_producer()和tf.train.slice_input_producer()

    1. https://blog.csdn.net/qq_41427568/article/details/85801579

  5. 学习笔记TF056:TensorFlow MNIST,数据集、分类、可视化

    MNIST(Mixed National Institute of Standards and Technology)http://yann.lecun.com/exdb/mnist/ ,入门级计算机 ...

  6. 深度学习原理与框架-Tensorflow基本操作-mnist数据集的逻辑回归 1.tf.matmul(点乘操作) 2.tf.equal(对应位置是否相等) 3.tf.cast(将布尔类型转换为数值类型) 4.tf.argmax(返回最大值的索引) 5.tf.nn.softmax(计算softmax概率值) 6.tf.train.GradientDescentOptimizer(损失值梯度下降器)

    1. tf.matmul(X, w) # 进行点乘操作 参数说明:X,w都表示输入的数据, 2.tf.equal(x, y) # 比较两个数据对应位置的数是否相等,返回值为True,或者False 参 ...

  7. TensorFlow 训练MNIST数据集(2)—— 多层神经网络

    在我的上一篇随笔中,采用了单层神经网络来对MNIST进行训练,在测试集中只有约90%的正确率.这次换一种神经网络(多层神经网络)来进行训练和测试. 1.获取MNIST数据 MNIST数据集只要一行代码 ...

  8. 基于 tensorflow 的 mnist 数据集预测

    1. tensorflow 基本使用方法 2. mnist 数据集简介与预处理 3. 聚类算法模型 4. 使用卷积神经网络进行特征生成 5. 训练网络模型生成结果 how to install ten ...

  9. 《Hands-On Machine Learning with Scikit-Learn&TensorFlow》mnist数据集错误及解决方案

    最近在看这本书看到Chapter 3.Classification,是关于mnist数据集的分类,里面有个代码是 from sklearn.datasets import fetch_mldata m ...

  10. 基于TensorFlow的MNIST数据集的实验

    一.MNIST实验内容 MNIST的实验比较简单,可以直接通过下面的程序加上程序上的部分注释就能很好的理解了,后面在完善具体的相关的数学理论知识,先记录在这里: 代码如下所示: import tens ...

随机推荐

  1. ByteBuf(图解1)

    目录 源码工程 写在前面 Netty ByteBuf 优势 手动获取与释放ByteBuf 自动获取和释放 ByteBuf 方式一:TailHandler 自动释放 方式二:SimpleChannelI ...

  2. The basic principle of test case 修改引擎

    The basic principle of test case evaluation is that output resulting from running a test case is com ...

  3. Error: EACCES: permission denied, mkdir '/root/.nvm/versions/node/......

    当我执行npm install -g node-inspector的时候报错. 所以就去网上搜索了一下答案. 有这么几种答案.请看完再执行相关命令 有说需要在前面加上sudo命令的. 不能解决我出现的 ...

  4. 稳定币GUSD的优劣势分析

    在币圈,有人乘着牛市东风一夜暴富,也有人不幸赶上熊市倾家荡产,涨跌大起大落是币圈的常态,在如此不稳定的币市,投资者们都想寻求一些稳定.接着,稳定币诞生了. 2018年下半年,稳定币引起了各路投资者的高 ...

  5. 怎样把word直接转换成ppt

  6. DHCP request error:Timed out waiting for dhcpcd to start【转】

    本文转载自:http://blog.csdn.net/zvivi521/article/details/9166899 [init.svc.dhcpcd_eth0]: [stopped] I/Serv ...

  7. HDU 5969 最大的位或 —— 贪心 + 二进制的理解

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5969 最大的位或 Time Limit: 2000/1000 MS (Java/Others)     ...

  8. TCP/IP,HTTP,Socket初识

    在大学时候学过网络通信这一块,奈何已经还给老师,苍天饶过谁,该拾起来看看学学的还是要学,先简单了解了下这方面的知识,后续会继续通过看书来充实这方面的知识. 手机能够联网是手机底层实现了TCP/IP协议 ...

  9. javase练习题--每天写写

    package com.javaTestDemo; import java.util.Scanner; public class JavaTest1 { public static void main ...

  10. 关于RHEL5中yum挂载iso源引起的问题(转)

    今天在虚机上通过yum挂载iso源来安装rpm包,但提示错误,内容见下面.之前也有过这样的操作, mount后,修改repo文件,然后就可以yum install  rpm包了:过程很简单啊.不知道这 ...