日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tensorflow随笔-队列(1)

發布時間:2025/3/12 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tensorflow随笔-队列(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

tf.FIFOQueue
Class FIFOQueue
先進先出的隊列

屬性
dtypes
隊列元素的每個組件的dtypes列表

name
隊列名字

基礎隊列的名稱。

names
隊列元素的每個組件的名字列表

queue_ref
基礎隊列引用

shapes
隊列元素的每個組件的尺寸列表

Methods
init

init(
capacity,
dtypes,
shapes=None,
names=None,
shared_name=None,
name=‘fifo_queue’
)

創建一個先進先出的隊列。

一個FIFOQueue具有有限的容量;支持多個并發生產者和消費者;并且提供恰好一次傳遞。

一個FIFOQueue持有一個至多容量元素的列表。每個元素是一個固定長度的張量元組,其dtype由dtypes描述,其形狀可選地由shapes參數描述。

如果指定了shapes參數,則隊列元素的每個組件必須具有各自的固定形狀。如果未指定,則不同的隊列元素可能具有不同的形狀,但是不允許使用dequeue_many。

參數:

capacity: 整數。可存儲在該隊列中的元素數量的上限。
dtypes: 一個dType對象的列表。dtypes的長度必須等于每個隊列元素中張量的數量。
shapes: (可選) 一個完全定義的TensorShape對象的列表,其長度與dtypes相同,或者None。A
names: (Optional.) 可選的)一個字符串列表,命名為與dtypes相同的隊列中的組件,或者None。如果指定了dequeue E方法,返回一個字典,名稱為鍵。
shared_name: (Optional.)(可選)。如果非空,這個隊列將在給定的名稱下在多個會話中共享。
name: 隊列操作的可選名稱。

close
close(
cancel_pending_enqueues=False,
name=None
)

關閉先進先出隊列

此操作指示在給定隊列中不再有元素入隊(enqueue)。隨后的enqueue隊列和enqueue_many將失敗,如果隊列中有足夠的元素,則后續的dequeue(出隊)和dequeue_many操作將繼續成功。隨后,如果dequeue和dequeue_many操作阻塞等待更多元素(如果close沒有被調用)將立即失敗。

如果cancel_pending_enqueues是True,所有未決請求也將被取消。

參數:

cancel_pending_enqueues: (可選) 一個boolean,默認為False
name: 操作的名字(可選)
返回:

關閉隊列的操作

dequeue
dequeue(name=None)

從隊列中出列一個元素。

如果隊列在執行此操作時是空的,它將阻塞直到有一個元素出列。

在運行時,如果隊列在執行之前或執行過程中的隊列是.tf.QuealBase.close,則此操作可能會引發錯誤。如果隊列被關閉,隊列是空的,并且沒有可以滿足此請求的掛起隊列操作,會觸發tf.Error。如果會話是tf.Session.close,tf.errors.CancelledError 將觸發。

參數:

name: 操作名(可選)
返回:

出列的張量的元組

dequeue_many
dequeue_many(
n,
name=None
)

將隊列中的n個元素出列并連接起來。

此操作將隊列元素組件張量沿著零維度連接成單個組件張量。在零個維度中,出列元組中的所有組件的大小都為n。如果隊列被關閉,并且還有小于n個元素,則引發一個OutOfRange異常。

在運行時,如果隊列是tf.QueueBase.close。在執行之前或執行期間關閉,則此操作可能會引發錯誤。如果隊列關閉,則隊列包含少于n個元素,并且沒有可以滿足此請求的掛起的入列操作,即tf.error.OutOfRangeErrouqr。如果這個隊列是tf.Session.close, tf.errors.CancelledError將被拋出。

參數:

n: 一個scalar Tensor,包括入列元素的數目
name: 操作的名字(可選)
返回:

tensors拼接生成的列表,這些列表將出列

enqueue

enqueue(
vals,
name=None
)

在隊列里入列一個元素

當操作執行時,如果這個隊列是滿的則它將阻止,直到元素已被入隊。

在運行時,如果隊列在執行之前或執行過程中的隊列是tf.QueueBase.close,則此操作可能會引發錯誤tf.errors.CancelledError。如果該操作被阻塞,并且要么(i)隊列通過具有cancel_pending_enque.=True的閉合操作關閉,要么(ii)會話為tf.Session.close、f.errors.CancelledError將被觸發。

參數:

vals:一個tensor,tensors的元組列表 ,或包含入隊值的字典。
name: 操作名字(可選)
返回:

將張量的新元組入列到隊列的操作。

enqueue_many

enqueue_many(
vals,
name=None
)

將零或多個元素入隊到此隊列

該操作將每個分量張量沿零維切片,以形成多個隊列元素。在零維中,所有在vals中的張量必須具有相同的大小。

如果此操作執行時隊列已滿,則它將阻塞,直到所有元素都已入隊。

在運行時,如果隊列在執行之前或執行過程中的隊列是tf.QueueBase.close,如果在運行之前關閉該隊列,則將引發tf.errors.CancelledError。如果該操作被阻塞,并且要么(i)隊列通過具有cancel_pending_enqueues=True的閉合操作關閉,要么(ii)會話為tf.Session.close、tf.errors.CancelledError將被引發。

參數:

vals: 一個tensor,tensors元組的列表,或一個字典 從中獲取隊列元素的字典
name: A name for the operation (optional).
返回:

將張量的一批元組排到隊列中的操作。

from_list

from_list(
index,
queues
)

從queues[index]中使用隊列引用創建隊列

參數:

index: 一個整數標量,決定輸入選擇范圍
queues: 一個QueueBase對象列表
返回:

一個QueueBase對象

拋出:

TypeError: 當queues不是queues對象的列表,或當queues數據類型并非都相同。
is_closed

is_closed(name=None)

如果隊列關閉,返回true。

如果隊列是關閉的,此操作返回true;如果隊列是打開的,則返回false。

參數:

name: 操作名稱(可選)
返回:

如果隊列是關閉的,此操作返回true;如果隊列是打開的,則返回false。

size

size(name=None)

計算隊列元素數量

參數:

name: 操作名(可選)
返回:

標量張量,包括隊列元素數量

dequeue_up_to

dequeue_up_to(
n,
name=None
)

從隊列中出列并拼接n個元素。

注:此操作不受所有隊列的支持。如果隊列不支持DequeueUpTo,則引發一個tf.errors.UnimplementedError。

此操作將隊列元素組件張量沿著零維連接成單個組件張量。如果隊列尚未關閉,則在零維度中,隊列中的元組中的所有組件都將具有大小N。

如果隊列關閉,并且剩余的元素多于0但少于n個,則立即返回少于n個的元素,而不是引發tf.error.OutOfRangeError,像tf.QueueBase.dequeue_many。如果隊列關閉,并且隊列中剩余的元素為0,tf.errors.OutOfRangeError將被拋出,就像就像dequeue_many中一樣。否則行為與dequeue_many一樣。

參數:

n: 一個標量Tensor,包含出列元素的數目。
name: A name for the operation (optional).
返回:

拼接出列tensors的元組,

#!/usr/bin/env python2 # -*- coding: utf-8 -*-import tensorflow as tfn = 100xQueue=tf.FIFOQueue(100,tf.int32)with tf.Session() as sess:for i in xrange(n):if i%3==0:sess.run(xQueue.enqueue(i))xLen=sess.run(xQueue.size())mySum=0printfor i in range(xLen):myx=sess.run(xQueue.dequeue())print myx,mySum+=myxprint print mySum

0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99
1683
求被3整除的100以內數之和

下面列出1-4的數字

#!/usr/bin/env python2 # -*- coding: utf-8 -*-import tensorflow as tfwith tf.Session() as sess:queue = tf.FIFOQueue(100, dtypes=[tf.int32], shapes=[()])enqueue_op = queue.enqueue_many([[1, 2,3,4]])inputs = queue.dequeue_many(4)sess.run(enqueue_op)sess.run(enqueue_op)print sess.run(inputs)

[1 2 3 4]

#!/usr/bin/env python2 # -*- coding: utf-8 -*-import tensorflow as tfn = 100xQueue=tf.FIFOQueue(100,dtypes=[tf.int32],shapes=[])with tf.Session() as sess:for i in xrange(n):if i%3==0:sess.run(xQueue.enqueue(i))xLen=sess.run(xQueue.size())myx=sess.run(xQueue.dequeue_many(xLen))print myx print sum(myx)

[ 0 3 6 … 93 96 99]
1683
上面求100以內被3整除的數之和

總結

以上是生活随笔為你收集整理的tensorflow随笔-队列(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。