Saya ingin menggunakan JST untuk masalah saya, tetapi masalahnya adalah input dan output saya nomor node tidak diperbaiki.
Saya melakukan pencarian google sebelum mengajukan pertanyaan saya dan menemukan bahwa RNN dapat membantu saya dengan masalah saya. Tapi, semua contoh yang saya temukan entah bagaimana telah menentukan jumlah input dan output node.
Jadi, saya mencari strategi, bagaimana membuatnya nyata atau setidaknya beberapa contoh, lebih disukai di Keras atau PyTorch.
Lebih detail tentang masalah saya:
Saya memiliki dua daftar input, di mana panjang yang pertama diperbaiki dan sama dengan dua, fe:
in_1 = [2,2]
tetapi panjang daftar kedua fleksibel, panjangnya bisa dari tiga hingga inf, fe:
in_2 = [1,1,2,2]
atau
in_2 = [1,1,1,2,2,2,3,3,3]
Juga, daftar input bergantung satu sama lain. Daftar pertama menunjukkan dimensi daftar keluaran. Jadi jika in_1 = [2,2], berarti output harus memiliki kemungkinan untuk dibentuk ulang menjadi [2,2].
Saat ini, saya berpikir untuk menggabungkan dua daftar input menjadi satu:
in = in_1 + in_2 = [2, 2, 1, 1, 2, 2]
Selain itu, output memiliki panjang yang sama dengan daftar in_2 , fi:
jika daftar input adalah:
in_1 = [2, 2]
in_2 = [1, 1, 2, 2]
Output harus:
out = [1, 2, 1, 2]
Ada ide selamat datang!
Saya pikir Anda mungkin salah mengerti jumlah input tetap untuk RNN. Ini adalah jumlah input per catatan waktu . Semua contoh Anda memiliki jumlah input tetap per timestep: 1! Anda memberi mereka satu per satu ke jaringan saraf Anda, diakhiri dengan token "akhir" khusus (Anda selalu dapat memiliki input kedua untuk ini). Ajarkan untuk tidak memberikan output sampai ia melihat token akhir, dan kemudian untuk output komponen hasil satu per satu, berakhir dengan token keluaran akhir khusus.
sumber
Mengetahui bahwa daftar pertama cukup invarian (hanya menggambarkan geometri tertentu) Anda juga dapat mencoba membuat banyak NN khusus yang berbeda untuk setiap konfigurasi in_1 yang berbeda dan hanya menggunakan in_2 untuk memberi makan jaringan.
Jadi in_1 dapat menggerakkan networks.ie yang berbeda
Pada langkah pertama Anda menentukan konfigurasi (yaitu membuat dict) dan kemudian melatih / memberi makan jaringan khusus sesuai.
sumber