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


Python tf.compat.v1.data.TextLineDataset.sample_from_datasets用法及代碼示例


用法

@staticmethod
sample_from_datasets(
    datasets, weights=None, seed=None, stop_on_empty_dataset=False
)

參數

  • datasets 具有兼容結構的tf.data.Dataset 對象的非空列表。
  • weights (可選。)len(datasets) 浮點值的列表或張量,其中 weights[i] 表示從 datasets[i]tf.data.Dataset 對象中采樣的概率,其中每個元素都是這樣的列表。默認為跨 datasets 的均勻分布。
  • seed (可選。)tf.int64 標量 tf.Tensor ,表示將用於創建分布的隨機種子。有關行為,請參閱tf.random.set_seed
  • stop_on_empty_dataset 如果 True ,如果遇到空數據集,采樣將停止。如果 False ,它會跳過空數據集。建議將其設置為 True 。否則,樣本的分布會按照用戶的意圖開始,但可能會隨著輸入數據集變空而改變。這可能很難檢測到,因為數據集開始看起來是正確的。默認為 False 以實現向後兼容性。

返回

  • 根據weights(如果提供),隨機交織來自datasets的元素的數據集,否則以統一概率。

拋出

  • TypeError 如果 datasetsweights 參數的類型錯誤。
  • ValueError
    • 如果datasets 為空,或者
    • 如果指定了 weights 並且與 datasets 的長度不匹配。

datasets 的數據集中隨機抽取元素。

通過將 datasets 的元素與從數據集 i 中選取元素的概率 weight[i] 交錯來創建數據集。取樣無需更換。例如,假設我們有 2 個數據集:

dataset1 = tf.data.Dataset.range(0, 3)
dataset2 = tf.data.Dataset.range(100, 103)

假設我們從這兩個數據集中使用以下權重進行采樣:

sample_dataset = tf.data.Dataset.sample_from_datasets(
    [dataset1, dataset2], weights=[0.5, 0.5])

sample_dataset 中元素的一種可能結果是:

print(list(sample_dataset.as_numpy_iterator()))
# [100, 0, 1, 101, 2, 102]

相關用法


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