tôi có chức năng sau:Tương đương với mã sau trong chuỗi lưu lượng là gì?
import random
lst = []
for i in range(100):
lst.append(random.randint(1, 10))
print(lst)
buffer = []
# This is the peace of code which I am interested to convert into tensorflow.
for a in lst:
buffer.append(a)
if len(buffer) > 5:
buffer.pop(0)
if len(buffer) == 5:
print(buffer)
Vì vậy, từ mã, tôi cần phải tạo ra một bộ đệm (có thể là một biến trong tensorflow). Bộ đệm này sẽ giữ các tính năng được trích xuất từ conv layer
vừa qua. variable
sẽ là đầu vào cho số RNN
trong trường hợp của tôi.
Ưu điểm của cách tiếp cận này là khi chúng tôi có hình ảnh lớn và khi chúng tôi cần nạp một RNN với (batch of images) * (sequence length) * (size of 1 image)
, sẽ yêu cầu một lượng lớn hình ảnh được tải vào bộ nhớ chính. Mặt khác, theo đoạn mã trên, chúng tôi sẽ cho ăn 1 hình ảnh cùng một lúc bằng cách sử dụng Datasets
từ lưu lượng, hoặc input queue
hoặc bất kỳ phương án thay thế nào khác. Kết quả là, chúng ta sẽ được lưu trữ trong bộ nhớ tính năng kích thước: batch_size * sequence_length * feature space
.Tại Thêm vào đó, chúng ta có thể nói:
if len(buffer) == n:
# empty out the buffer after using its elements
buffer = [] # Or any other alternative way
Tôi biết rằng tôi có thể ăn mạng của tôi batches
các hình ảnh, nhưng tôi cần phải hoàn thành mã được đề cập dựa trên một số tài liệu.
Bất kỳ trợ giúp nào được đánh giá cao !!
bạn có thể sử dụng tf.FIFOQueue không? https://www.tensorflow.org/api_docs/python/tf/FIFOQueue – greeness