Tensorflow细节-P190-输入文件队列

以下代码要学会几个地方

1、filename = (‘data.tfrecords-%.5d-of-%.5d‘ % (i, num_shards)) 这个东西就是要会data.tfrecords-%.5d-of-%.5d两个.5d,
2、记住这两个操作writer = tf.python_io.TFRecordWriter(filename)writer = tf.python_io.TFRecordWriter(filename)
3、得到的是以下TFrecoard两个文件

import tensorflow as tf

def _int64_feature(value):
    return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))

num_shards = 2
instances_per_shard = 2
# 以下文件用于存储数据
for i in range(num_shards):
    filename = ('data.tfrecords-%.5d-of-%.5d' % (i, num_shards))
    # 将Example结构写入TFRecord文件。
    writer = tf.python_io.TFRecordWriter(filename)

    for j in range(instances_per_shard):
    # Example结构仅包含当前样例属于第几个文件以及是当前文件的第几个样本。
        example = tf.train.Example(features=tf.train.Features(feature={
            'i': _int64_feature(i),
            'j': _int64_feature(j)}))
        writer.write(example.SerializeToString())
    writer.close()
以下是对上面程序生成文件的读取(该讲的已经讲了)
import tensorflow as tf

# 获取一个符合正则表达式的所有文件列表,这样就可以得到所有的符合要求的文件了
files = tf.train.match_filenames_once("data.tfrecords-*")  # *是一个通配符

filename = tf.train.string_input_producer(files, shuffle=True, num_epochs=3)  # 打乱顺序,迭代3次

reader = tf.TFRecordReader()
_, serialized_example = reader.read(filename)
features = tf.parse_single_example(  # 解析serialized_example
    serialized_example,
    features={
        'i': tf.FixedLenFeature([], tf.int64),
        'j': tf.FixedLenFeature([], tf.int64),
    }
)

with tf.Session() as sess:
    tf.local_variables_initializer().run()
    print(sess.run(files))
    coord = tf.train.Coordinator()  # 定义tf.Coordinator类以协同线程
    threads = tf.train.start_queue_runners(sess=sess, coord=coord)  # 启动线程
    for i in range(12):
        print(sess.run([features['i'], features['j']]))
    coord.request_stop()
    coord.join(threads)

原文地址:https://www.cnblogs.com/liuboblog/p/11650684.html

时间: 2024-09-29 05:38:59

Tensorflow细节-P190-输入文件队列的相关文章

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

import tensorflow as tf def _int64_feature(value): return tf.train.Feature(int64_list=tf.train.Int64List(value=[value])) num_shards = 2 instances_per_shard = 2 for i in range(num_shards): filename = ('E:\\temp\\data.tfrecords-%.5d-of-%.5d' % (i, num_

Tensorflow 细节P-40

1.绝大部分时候都会忽略graph的使用,如下代码所示,学会怎样tf.get_default_graph()是重要的,此外注意变量定义时的初始化必须加 initializer 2.此外,要知道 writer2 = tf.summary.FileWriter(Summary_log, g2) writer2.close() 这两条语句加在哪里也是极为重要的 3.注意命名及命名空间的使用 import tensorflow as tf Summary_log = './path' g1 = tf.G

Tensorflow细节-P42张量的概念及使用

1.运行以下代码 import tensorflow as tf a = tf.constant([1.0, 2.0], name="a") b = tf.constant([2.0, 3.0], name="b") result = a + b print result sess = tf.InteractiveSession () print(result.eval()) sess.close() 得到 其中,add与代码中的add有关,0表示第一个输出,图中的

Tensorflow细节-P80-深度神经网络

1.本节多为复习内容,从以下图片可见一般: 2.学会使用 from numpy.random import RandomState 然后 rdm = RandomState(1) dataset_size = 128 X = rdm.rand(dataset_size, 2) Y = [[(x1 + x2) + rdm.rand() / 10.0-0.05] for(x1, x2) in X] 进行赋值的时候就可以不变了 import tensorflow as tf from numpy.ra

Tensorflow细节-P89-collection的使用

知识总结 (1)再次注意summary的使用 (2)x = rdm.rand(dataset_size, 2) y_ = [[x1**2 + x2**2] for (x1, x2) in x]这里的问题要注意 (3)注意batch时,全部先按照一套W进行前向传播,这时候在进行正则化时,加的是同一套W,然后反向传播改变W值,进行下一轮前向传播 代码如下 import tensorflow as tf import numpy as np from numpy.random import Rando

Tensorflow细节-P112-模型持久化

第一个代码 import tensorflow as tf v1 = tf.Variable(tf.random_normal([1], stddev=1, seed=1)) v2 = tf.Variable(tf.random_normal([1], stddev=1, seed=1)) result = v1 + v2 init_op = tf.global_variables_initializer() saver = tf.train.Saver() with tf.Session()

Tensorflow细节-P319-使用GPU基本的操作

如果什么都不加,直接运行装了GPU的Tensorflow,结果是这样子的 import tensorflow as tf a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a') b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b') c = a + b sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) # 通

Tensorflow细节-P84-梯度下降与批量梯度下降

1.批量梯度下降 批量梯度下降法是最原始的形式,它是指在每一次迭代时使用所有样本来进行梯度的更新.从数学上理解如下: 对应的目标函数(代价函数)即为: (1)对目标函数求偏导: (2)每次迭代对参数进行更新: 优点: ??(1)一次迭代是对所有样本进行计算,此时利用矩阵进行操作,实现了并行. ??(2)由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向.当目标函数为凸函数时,BGD一定能够得到全局最优. 缺点: ??(1)当样本数目 m 很大时,每迭代一步都需要对所有样本

『TensorFlow』队列&多线程&TFRecod文件_我辈当高歌

TF数据读取队列机制详解 TFR文件多线程队列读写操作: TFRecod文件写入操作: import tensorflow as tf def _int64_feature(value): # value必须是可迭代对象 # 非int的数据使用bytes取代int64即可 return tf.train.Feature(int64_list=tf.train.Int64List(value=[value])) num_shards = 2 instance_perPshard = 2 for i