當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python tf.compat.v1.train.shuffle_batch用法及代碼示例

通過隨機打亂張量創建批次。 (已棄用)

用法

tf.compat.v1.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
)

參數

  • tensors 要入隊的張量列表或字典。
  • batch_size 從隊列中拉出的新批量大小。
  • capacity 一個整數。隊列中的最大元素數。
  • min_after_dequeue 出隊後隊列中的最小元素數,用於確保元素的混合級別。
  • num_threads 排隊的線程數 tensor_list
  • seed 隊列中隨機洗牌的種子。
  • enqueue_many tensor_list 中的每個張量是否是單個示例。
  • shapes (可選)每個示例的形狀。默認為 tensor_list 的推斷形狀。
  • allow_smaller_final_batch (可選)布爾值。如果 True ,如果隊列中剩餘的項目不足,則允許最終批次更小。
  • shared_name (可選)如果設置,此隊列將在多個會話中以給定名稱共享。
  • name (可選)操作的名稱。

返回

  • 類型為 tensors 的張量列表或字典。

拋出

  • ValueError 如果 shapes 未指定,並且無法從 tensors 的元素中推斷出來。

警告:此函數已棄用。它將在未來的版本中刪除。更新說明:基於隊列的輸入管道已替換為 tf.data 。使用 tf.data.Dataset.shuffle(min_after_dequeue).batch(batch_size)

此函數將以下內容添加到當前 Graph

  • 一個洗牌隊列,來自tensors 的張量被排入隊列。
  • 用於從隊列中創建批次的 dequeue_many 操作。
  • QueueRunnerQUEUE_RUNNER 集合,用於將來自 tensors 的張量排入隊列。

如果enqueue_manyFalse , tensors 則假定代表一個示例。形狀為 [x, y, z] 的輸入張量將作為形狀為 [batch_size, x, y, z] 的張量輸出。

如果enqueue_manyTrue , tensors 則假設代表一批樣本,其中第一個維度是按樣本索引的,並且tensors 的所有成員在第一個維度中應該具有相同的大小。如果輸入張量的形狀為 [*, 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.compat.v1.train.shuffle_batch(
      [single_image, single_label],
      batch_size=32,
      num_threads=4,
      capacity=50000,
      min_after_dequeue=10000)

注意:您必須確保 (i) shapes 參數被傳遞,或者 (ii) tensors 中的所有張量必須具有 fully-defined 形狀。如果這些條件都不成立,則會引發 ValueError

如果 allow_smaller_final_batchTrue ,則當隊列關閉且沒有足夠的元素填充該批次時,將返回小於 batch_size 的批次值,否則將丟棄待處理的元素。此外,通過 shape 屬性訪問的所有輸出張量的靜態形狀將具有 None 的第一個 Dimension 值,並且依賴於固定 batch_size 的操作將失敗。

eager模式兼容性

啟用即刻執行時,不支持基於隊列的輸入管道。請使用tf.data API 在即刻執行下攝取數據。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.train.shuffle_batch。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。