Deeprl-agents: A3C-Doom: petak pekerja_0 hilang

Dibuat pada 11 Mar 2017  ·  10Komentar  ·  Sumber: awjuliani/DeepRL-Agents

terhormat

Ketika menggunakan:

tensorboard --logdir=worker_0:'./train_0',worker_1:'./train_1',worker_2:'./train_2',worker_3:'./train_3'

pekerja_0 tidak diplot

Semua 10 komentar

Hai Ibrahim,

Apakah Anda mengalami kesalahan dalam proses worker_0? Kalau tidak, itu pasti harus merencanakan.

Saya mengalami masalah yang menurut saya mungkin terkait/menjelaskan apa yang Anda lihat. Saya perhatikan ketika menjalankan kode a3c doom pada 8-16 cpus, kadang-kadang satu atau dua utas tidak dapat diluncurkan atau setidaknya gagal secara diam-diam. Nama utasnya, ketika dicetak dari pekerja. tempat kerja atau tempat lain, dapat terlihat sebagai pengulangan atau campur aduk. Jadi saya akan memiliki dua utas "1" atau indeks berulang lainnya dalam nama pekerja.

Ketika memperluas kode untuk penggunaan pribadi, saya mengalami ini berulang kali karena lingkungan saya jauh lebih ringan dan lebih cepat untuk memulai seorang pekerja. Untuk memperbaiki masalah ini, saya menambahkan sleep(0.5) sederhana (lihat kode di bawah). Sekarang, ketika saya mencetak, dari worker.work, nama utas saya tidak lagi melihat item berulang dan tidak ada lagi campuran lokasi pencetakan dan bug lain yang disebabkan oleh masalah tersebut.

Tampaknya pekerja terlalu cepat menumpuk dalam kasus saya dan mengulangi atau mencampuradukkan konteks mereka? Saya sudah terbiasa dengan modul Scoop atau Multiprocessing jadi saya tidak yakin apakah ini masalah umum dengan cakupan global dan Threading?

for worker in workers:
        worker_work = lambda: worker.work(max_episode_length,gamma,sess,coord,saver)
        t = threading.Thread(target=(worker_work))
        t.start()
        worker_threads.append(t)
        sleep(0.5)
    coord.join(worker_threads)

Terima kasih atas saran DMTSource! Saya telah memasukkan baris sleep ke dalam buku catatan.

Saya telah menambahkan sleep sebagai berikut:

    worker_threads = []
    for worker in workers:
        worker_work = lambda: worker.work(max_episode_length,gamma,sess,coord,saver)
        t = threading.Thread(target=(worker_work))
        t.start()
        worker_threads.append(t)
        sleep(0.5) # here is it
    coord.join(worker_threads)

pekerja_0 dalam warna oranye

w_0

  • Namun, worker_0 tampaknya berhenti sangat awal
  • Selain itu, model dan bingkai tidak disimpan (kode untuknya didasarkan pada pekerja_0)

Kemudian saya menggunakan pekerja_1 alih-alih pekerja_0 untuk menyimpan model dan bingkai, tetapi pekerja_1 berhenti

w_1

Saya mencoba sleep dalam kode yang bertanggung jawab untuk menyimpan model dan bingkai ... tetapi masalah yang sama.

Salam

Jadi plot ditampilkan dan semua pekerja masih hidup dan sehat dengan nama masing-masing...sampai apa yang tampak seperti langkah ~10(menghemat waktu).

Sepertinya ada masalah dengan penyimpanan model karena pekerja "master" berhasil mencapai titik itu dan kemudian dimatikan. Jika crash benar-benar hening, Anda mungkin ingin menambahkan beberapa pernyataan cetak untuk mempelajari seberapa jauh kode didapat setelah mencapai blok kode yang relevan untuk menyimpan model.

Tebakan bodoh saya adalah sesuatu seperti ffmpeg menyebabkan masalah karena ini adalah alat yang sangat eksternal untuk kode ini, dan menyimpan file pos pemeriksaan seharusnya sepele untuk Tensorflow terlepas dari sistemnya. Anda dapat mencoba mengomentari kode pembuatan gif jika demikian. Saya mengalami kesulitan mendapatkan instalasi ffmpeg yang berfungsi di sistem saya saat pertama kali saya menjalankan kode karena beberapa versi menimbulkan kesalahan (Ubuntu 14.04). Tapi saya bisa membuatnya bekerja setelah masalah diidentifikasi.

Kemungkinan penyebabnya:

Setelah menghapus model dan kode penyimpanan gif, semuanya berfungsi dengan baik!

Kode yang dihapus:

                    if self.name == 'worker_1' and episode_count % 25 == 0:
                        time_per_step = 0.05
                        images = np.array(episode_frames)
                        make_gif(images,'./frames/image'+str(episode_count)+'.gif',
                            duration=len(images)*time_per_step,true_image=True,salience=False)
                    if episode_count % 250 == 0 and self.name == 'worker_1':
                        saver.save(sess,self.model_path+'/model-'+str(episode_count)+'.cptk')
                        print ("Saved Model")

Gambar: (semua utas ada di sana) Saya pikir saya memiliki beberapa kesalahan dalam menyimpan!

w_no_save

Ada petunjuk?

Salam

Terima kasih DMTSource

Saya dapat menyimpan modelnya tetapi tidak dengan bingkainya!

cara lain untuk menyimpan gif atau video?

Hai Ibrahim,

Apakah Anda yakin bahwa Anda telah menginstal moviepy dan ffmpeg? Anda juga perlu memastikan versi imageio yang Anda miliki adalah 1.6.

Hai Arthur

gambar
cetak imageio.--versi--
2.1.2

ffmpeg -versi
ffmpeg versi N-80901-gfebc862 Hak Cipta (c) 2000-2016 pengembang FFmpeg
dibangun dengan gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
konfigurasi: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl -- aktifkan-versi3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --enable- libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth -- aktifkan-libsoxr --enable-libxvid --enable-libvidstab
libavutil 55. 28.100 / 55. 28.100
libavcodec 57. 48.101 / 57. 48.101
libavformat 57. 41.100 / 57. 41.100
libavdevice 57. 0.102 / 57. 0.102
libavfilter 6. 47.100 / 6. 47.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100

Saya yakin Anda akan membutuhkan imageio 1.6, dan bukan 2.1 agar generasi gif berfungsi. Sayangnya mereka mengubah encoder di 2.1 dan memecahkan kode gif yang saya gunakan. Jika Anda memiliki perbaikan yang berfungsi dengan 2.1, saya akan dengan senang hati memasukkannya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

IbrahimSobh picture IbrahimSobh  ·  30Komentar

ariewahyu picture ariewahyu  ·  3Komentar

marco-vene picture marco-vene  ·  3Komentar

Zumbalamambo picture Zumbalamambo  ·  3Komentar

iamsiva11 picture iamsiva11  ·  3Komentar