1. 程式人生 > >tensorflow-tf.train.shuffle_batch

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]))