2016-02-09 21 views
8

Có rất nhiều phương pháp trong TensorFlow mà đòi hỏi phải xác định một hình dạng, ví dụ truncated_normal:Không thể chuyển đổi một tensor một phần được chuyển đổi trong TensorFlow

tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) 

Tôi có một giữ chỗ cho đầu vào của hình dạng [Không, 784], nơi thứ nguyên đầu tiên là Không vì kích thước lô có thể thay đổi. Tôi có thể sử dụng một kích thước lô cố định nhưng nó vẫn sẽ khác với kích thước thiết lập kiểm tra/xác nhận hợp lệ.

Tôi không thể cấp phần giữ chỗ này cho tf.truncated_normal vì nó yêu cầu hình dạng tensor được chỉ định đầy đủ. Một cách đơn giản để có tf.truncated_normal chấp nhận các hình dạng tensor khác nhau là gì?

Trả lời

12

Bạn chỉ cần nạp nó dưới dạng một ví dụ duy nhất nhưng theo hình dạng được nhóm. Vì vậy, điều đó có nghĩa là thêm một chiều hướng bổ sung cho hình dạng, ví dụ:

batch_size = 32 # set this to the actual size of your batch 
tf.truncated_normal((batch_size, 784), mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) 

Bằng cách này, nó sẽ "khớp" vào trình giữ chỗ.

Nếu bạn mong đợi batch_size thay đổi bạn cũng có thể sử dụng:

tf.truncated_normal(tf.shape(input_tensor), mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) 

đâu input_tensor có thể là một giữ chỗ hoặc chỉ bất cứ điều gì tensor sẽ có tiếng ồn này thêm vào nó.

+0

Vấn đề với giải pháp này là nó sẽ thêm cùng một tạp âm cho mỗi dòng của điểm Tensor –

+0

Điểm công bằng tôi sẽ đưa ra một số biến thể sửa lỗi đó và làm cho nó rõ ràng hơn –

+0

Tôi rất quan tâm đến một giải pháp giả thiết, bởi vì tôi đã tìm kiếm một thời gian rồi. –

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