Tôi vừa mới bắt đầu chơi với TensorFlow và tôi đang cố gắng thực hiện một RNN rất đơn giản. RNN có x
làm đầu vào, y
làm đầu ra và chỉ bao gồm một lớp đơn lẻ có x
và đầu ra trước đó là đầu vào. Dưới đây là một hình ảnh của các loại điều tôi có trong tâm trí:Làm thế nào để xây dựng một RNN đơn giản với một chu kỳ trong đồ thị trong TensorFlow?
Vấn đề là, tôi không thể nhìn thấy bất cứ cách nào qua TensorFlow API để xây dựng một đồ thị với một chu kỳ trong đó. Bất cứ khi nào tôi xác định một Tensor tôi phải xác định những gì nó là đầu vào, có nghĩa là tôi đã có đã được xác định đầu vào của nó. Vì vậy, có một vấn đề gà và trứng.
Tôi thậm chí không biết nếu muốn xác định biểu đồ bằng một chu kỳ (Điều gì được tính trước? Tôi có phải định nghĩa giá trị ban đầu của nút softmax không?). Tôi đã chơi với ý tưởng sử dụng một biến để biểu diễn đầu ra trước đó và sau đó tự lấy giá trị y
và lưu nó trong biến mỗi lần sau khi cho ăn thông qua một mẫu đào tạo. Nhưng điều đó sẽ rất chậm trừ khi có cách để thể hiện quy trình này trong chính đồ thị (?).
Tôi biết hướng dẫn của TensorFlow hiển thị các ví dụ về RNN nhưng chúng lừa và kéo một mô-đun LSTM ra khỏi thư viện đã có chu trình trong đó. Nhìn chung các hướng dẫn là tốt cho bước bạn thông qua làm thế nào để xây dựng những điều nhất định nhưng họ có thể làm một công việc tốt hơn để giải thích làm thế nào con thú này thực sự hoạt động.
Vì vậy, các chuyên gia của TensorFlow, có cách nào để xây dựng điều này không? Tôi sẽ làm thế nào?
Ý tưởng biến của bạn có vẻ như một cách để đi, không nên chậm nếu bạn sử dụng biến TensorFlow/gán ops –
Nhưng tôi sẽ không phải gọi 'sess.run (y_prev.assign (y))' và chạy các mẫu thông qua một tại một thời điểm? Hoặc bạn có nghĩa là tôi nên kết hợp điều này với chiến thuật unrolling được mô tả bởi @ Ishamael? – Shum