2017-02-27 41 views
5
  • Làm thế nào để tensorflow áp dụng dropout khi gọi tf.nn.rnn_cell.DropoutWrapper()?

Mọi thứ tôi đọc về việc áp dụng bỏ học vào tài liệu tham khảo của rnn bài báo này theo Zaremba et. al cho biết không áp dụng bỏ học giữa các kết nối lặp lại. Neurons nên được loại bỏ ngẫu nhiên trước hoặc sau các lớp LSTM, nhưng không phải các lớp liên LSTM. Được.Tensorflow LSTM Dropout Implementation

  • Câu hỏi mà tôi có là các tế bào thần kinh bị tắt theo thời gian như thế nào?

Trong bài báo mà mọi người trích dẫn, có vẻ như 'mặt nạ bỏ học' ngẫu nhiên được áp dụng tại mỗi dấu thời gian, thay vì tạo ra một 'mặt nạ bỏ học' ngẫu nhiên và sử dụng lại nó, áp dụng nó cho tất cả các dấu thời gian lớp bị loại bỏ. Sau đó tạo ra một 'mặt nạ bỏ học' mới trên lô tiếp theo.

Hơn nữa, và có lẽ những gì quan trọng hơn vào lúc này, làm thế nào để tensorflow làm điều đó? Tôi đã kiểm tra các api tensorflow và cố gắng tìm kiếm xung quanh cho một lời giải thích chi tiết nhưng vẫn chưa tìm thấy một.

  • Có cách nào để đào sâu vào mã nguồn lưu lượng thực tế không?
+2

Tất cả mã nguồn có sẵn trong github – user2717954

Trả lời

1

Bạn có thể kiểm tra việc thực hiện here.

Nó sử dụng dropout op trên đầu vào cho RNNCell, sau đó trên đầu ra, với xác suất giữ bạn chỉ định.

Dường như mỗi chuỗi bạn nạp vào sẽ nhận được mặt nạ mới để nhập, sau đó cho đầu ra. Không có thay đổi nào bên trong chuỗi.

+1

Cảm ơn bạn. Điều đó thực sự dẫn đến tôi câu trả lời, bỏ học không được áp dụng thường xuyên khi sử dụng nó trong rnn trong tensorflow. Đối với bất kỳ ai muốn tính năng này, tôi đã mở một vấn đề về github, Số phát hành # 7927. – beeCwright

+0

Cảm ơn bạn đã chỉ phần có liên quan! – Aaron

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