2016-03-01 16 views
7

Tôi cần phải chuyển đổi danh sách các tensors N đến một tensor mới với dimensionality N + 1 sao cho kích thước mới sẽ là đúng kích thước nhất. Ví dụ nếu x và y sẽ là tensors hình dạng (4,3) cả hai sau đó tôi đang cố gắng để tạo ra một tensor z mới của hình dạng (4,3,2) bằng cách hình thành z và thiết lập tensor x là 0th phần tử dọc theo thứ nguyên thứ ba và đặt y tensor làm phần tử thứ nhất dọc theo thứ nguyên thứ ba. Trong mã giả:Làm thế nào để chuyển đổi danh sách các tensors dim N thành tensor dim N + 1

z = tf.fromList([x,y],3) 

Cách tốt nhất để thực hiện điều đó trong Tensorflow là gì. Tôi đã không thể tìm ra từ tài liệu của TF 0.7.1.

Trả lời

10

Nếu tôi đọc chính xác, bạn muốn xen kẽ dữ liệu của hai dây kéo.

Bạn muốn tf.pack() chúng lại với nhau, tạo thành một hình dạng có độ bền là [2, 4, 3] và sau đó là tf.transpose([1, 2, 0]), kết quả là bạn có thể sử dụng dây kéo để xen kẽ bạn muốn.

+0

Cảm ơn dga, có vẻ như nó sẽ hoạt động! – Tomi

+0

Có vẻ như ['tf.pack()'] (https://www.tensorflow.org/api_docs/python/array_ops/slicing_and_joining#pack) bây giờ lấy một tham số cho trục mà bạn muốn xen kẽ xảy ra; trong trường hợp này, tôi tin rằng bạn có thể sử dụng 'tf.pack (my_list, axis = 2)'. – apnorton

7

phương pháp của dga hoạt động, nhưng tf.pack() đã bị xóa khỏi TensorFlow V1.0 trở đi.

Bạn có thể sử dụng tf.stack() để đạt được điều tương tự.

Tài liệu: https://www.tensorflow.org/api_docs/python/tf/stack

+0

Tôi có thể đặt tf.điều kiện của ngăn xếp không? Nó có thể làm việc để kết quả đầu ra trong session.run? –

Các vấn đề liên quan