tensorflow-tf.train.shuffle_batch

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tensorflow-tf.train.shuffle_batch相关的知识,希望对你有一定的参考价值。

tf.train.shuffle_batch

?
tf.train.shuffle_batch(
? ? tensors,
? ? batch_size,
? ? capacity,
? ? min_after_dequeue,
? ? num_threads=1,
? ? seed=None,
? ? enqueue_many=False,
? ? shapes=None,
? ? allow_smaller_final_batch=False,
? ? shared_name=None,
? ? name=None
)

此函数向当前计算图添加以下内容:

将张量中的张量放入队列中的一种变换队列。

dequeue_many操作从队列中创建批次。

一个QueueRunner到QUEUE_RUNNER集合,将张量从张量中加入队列。

如果enqueue_many为False,则假定张量代表一个示例。一个形状为[x, y, z]的输入张量将作为一个形状为[batch_size, x, y, z]的张量输出。

如果enqueue_many为真,则假定张量代表一组示例,其中第一个维度通过示例索引,并且张量的所有成员在第一个维度中的大小应该相同。如果输入张量的形状是[*,x, y, z],输出的形状是[batch_size, x, y, z]。

容量capacity参数控制允许预取队列增长的长度。

返回的操作是一个出队列操作,如果输入队列耗尽并将抛出tf.errors.OutOfRangeError 。

如果该操作正在为另一个输入队列提供数据,其队列运行器将捕获此异常,但是,如果在主线程中使用此操作,则您自己负责捕获此异常。

Creates batches of 32 images and 32 labels.

image_batch, label_batch = tf.train.shuffle_batch(
? ? ? [single_image, single_label],
? ? ? batch_size=32,
? ? ? num_threads=4,
? ? ? capacity=50000,
? ? ? min_after_dequeue=10000)
tf.stack()

通过沿轴维数的排列,将张量列表中的值打包成一个维度比每个张量的值高1的张量。

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Tue Sep 18 20:19:40 2018
@author: myhaspl
@email:[email protected]
"""

import tensorflow as tf
x = tf.constant([1, 4])
y = tf.constant([2, 5])
z = tf.constant([3, 6])
res1=tf.stack([x, y, z], axis=1)  
res2=tf.stack([x, y, z], axis=0) 
with tf.Session() as sess:
    print sess.run(res1)
    print sess.run(res2)

?

[[1 2 3]
?[4 5 6]]
[[1 4]
?[2 5]
?[3 6]]
转置


x = tf.constant([[1, 2, 3], [4, 5, 6]])
tf.transpose(x)  # [[1, 4]
             #  [2, 5]
             #  [3, 6]]

读文件代码:

#生成文件名队列
fileName=os.getcwd()+"/1.csv"
fileNameQueue=tf.train.string_input_producer([fileName])
#生成记录键值对
reader=tf.TextLineReader(skip_header_lines=1)
key,value=reader.read(fileNameQueue)
recordDefaults=[[""],[0],[0]]
decoded=tf.decode_csv(value,record_defaults=recordDefaults)
name,age,source=tf.train.shuffle_batch(decoded,batch_size=1,capacity=2,min_after_dequeue=1)    
features=tf.transpose(tf.stack([age,source]))

以上是关于tensorflow-tf.train.shuffle_batch的主要内容,如果未能解决你的问题,请参考以下文章