吴裕雄 python 神经网络——TensorFlow 数据集基本使用方法

Posted tszr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了吴裕雄 python 神经网络——TensorFlow 数据集基本使用方法相关的知识,希望对你有一定的参考价值。

import tempfile
import tensorflow as tf

input_data = [1, 2, 3, 5, 8]
dataset = tf.data.Dataset.from_tensor_slices(input_data)

# 定义迭代器。
iterator = dataset.make_one_shot_iterator()

# get_next() 返回代表一个输入数据的张量。
x = iterator.get_next()
y = x * x

with tf.Session() as sess:
    for i in range(len(input_data)):
        print(sess.run(y))

技术图片

# 创建文本文件作为本例的输入。
with open("E:\\\\temp\\\\test1.txt", "w") as file:
    file.write("File1, line1.\\n") 
    file.write("File1, line2.\\n")
with open("E:\\\\temp\\\\test2.txt", "w") as file:
    file.write("File2, line1.\\n") 
    file.write("File2, line2.\\n")

# 从文本文件创建数据集。这里可以提供多个文件。
input_files = ["E:\\\\temp\\\\test1.txt", "E:\\\\temp\\\\test2.txt"]
dataset = tf.data.TextLineDataset(input_files)

# 定义迭代器。
iterator = dataset.make_one_shot_iterator()

# 这里get_next()返回一个字符串类型的张量,代表文件中的一行。
x = iterator.get_next()  
with tf.Session() as sess:
    for i in range(4):
        print(sess.run(x))

技术图片

# 解析一个TFRecord的方法。
def parser(record):
    features = tf.parse_single_example(
        record,
        features={
            image_raw:tf.FixedLenFeature([],tf.string),
            pixels:tf.FixedLenFeature([],tf.int64),
            label:tf.FixedLenFeature([],tf.int64)
        })
    decoded_images = tf.decode_raw(features[image_raw],tf.uint8)
    retyped_images = tf.cast(decoded_images, tf.float32)
    images = tf.reshape(retyped_images, [784])
    labels = tf.cast(features[label],tf.int32)
    #pixels = tf.cast(features[‘pixels‘],tf.int32)
    return images, labels

# 从TFRecord文件创建数据集。这里可以提供多个文件。
input_files = ["E:\\\\MNIST_data\\\\output.tfrecords"]
dataset = tf.data.TFRecordDataset(input_files)

# map()函数表示对数据集中的每一条数据进行调用解析方法。
dataset = dataset.map(parser)

# 定义遍历数据集的迭代器。
iterator = dataset.make_one_shot_iterator()

# 读取数据,可用于进一步计算
image, label = iterator.get_next()

with tf.Session() as sess:
    for i in range(10):
        x, y = sess.run([image, label]) 
        print(y)

技术图片

# 从TFRecord文件创建数据集,具体文件路径是一个placeholder,稍后再提供具体路径。
input_files = tf.placeholder(tf.string)
dataset = tf.data.TFRecordDataset(input_files)
dataset = dataset.map(parser)

# 定义遍历dataset的initializable_iterator。
iterator = dataset.make_initializable_iterator()
image, label = iterator.get_next()

with tf.Session() as sess:
    # 首先初始化iterator,并给出input_files的值。
    sess.run(iterator.initializer,feed_dict={input_files: ["E:\\\\MNIST_data\\\\output.tfrecords"]})
    # 遍历所有数据一个epoch。当遍历结束时,程序会抛出OutOfRangeError。
    while True:
        try:
            x, y = sess.run([image, label])
        except tf.errors.OutOfRangeError:
            break 

 

以上是关于吴裕雄 python 神经网络——TensorFlow 数据集基本使用方法的主要内容,如果未能解决你的问题,请参考以下文章

吴裕雄 python 神经网络——TensorFlow 输入文件队列

吴裕雄 python 机器学习——人工神经网络感知机学习算法的应用

吴裕雄 python 神经网络——TensorFlow 队列操作

吴裕雄 python 神经网络——TensorFlow 数据集高层操作

吴裕雄 python 神经网络——TensorFlow pb文件保存方法

吴裕雄 python 神经网络——TensorFlow 多线程队列操作