Mencoba Tensorflow

26 February 2017 at 16:58 | Posted in penelitian | Leave a comment

Bagi yang pemula yang ingin menginstall tensorflow dengan gampang, ini tutorial yang saya buat: http://yudiwibisono.staf.upi.edu/2017/06/03/install-ubuntutensorflowkeras/

Update Mei 2017:

Akhirnya beli PC sendiri, niatnya akhir pekan digunakan oleh anak untuk main game, sisanya untuk saya eksperimen 🙂 GTX1060 6GB, memori 32GB, core i7 6700.  Sebenarnya lebih ideal GTX1070 yang 8GB atau 1080, tapi harganya hampir dua kali lipat dari 1060.  Sempat bermasalah saat install karena chipset tidak dikenali dan menyebabkan monitor blank (tip: edit grub.cfg, tambahkan opsi nomodeset).  Lalu setelah diinstall Ubuntu eh terus nyelonong ke Windows 10 (Grub tidak dipanggil). Bisa diperbaiki dengan boot-repair lalu grub update.  Terakhir ternyata ukuran partisi swap yang dibuat 32GB!  padahal saya cuma beri ukuran 50GB untuk Ubuntu karena ukuran HD SSD terbatas. Ini ternyata gampang diatur ulang dengan GParted. Lumayan repot untuk saya yang awam Linux.

Untuk pengingat masalah saat install Tensorflow:

  • Saat install Cuda Toolkit, gunakan versi deb jangan local file. Jika menggunakan local file efeknya harus matikan x-server dst yang lebih ribet.
  • Cara update driver GPU NVIDIA yang lebih mudah di Ubuntu adalah dengan masuk System Setting ; Software and Updates ; tab Additional Driver lalu pilih NVDIA binary driver. Tidak perlu dengan apt-get install nvidia-375 lagi.
  • Terbentur saat install CuDNN lagi 😦  kurang jelas ternyata posting blog ini.  Jadi di situs cuDNN saat pilih CuDNN versi 5.1, ada tiga file yang perlu di download: cuDNN v5.1 Library for Linux,  cuDNN v5.1 Runtime Library for Ubuntu14.04 (Deb), cuDNN v5.1 Developer Library for Ubuntu14.04 (Deb). Hati-hati jangan pilih yang Power 8, walaupun untuk Ubuntu 16.04 tapi arsitekturnya berbeda (bukan arm64).  Untuk file library for linux, formatnya .tar, ekstrak lalu berdasarkan direktorinya copy ke /usr/local/cuda-8.0/include dan /usr/local/cuda-8.0/lib64. Gunakan sudo cp -P agar symlinknya ikut tercopy(?).  Untuk runtime lib dan dev lib formatnya .deb, install dengan dpkg. Mungkin ini dapat dipilih salah satu? atau bahkan mungkin malah tidak perlu? Nanti kapan-kapan saya coba deh.

–end update–

Catatan: update ini tdk berlaku lagi, lihat update Mei di atas.

Update Mar 2017: karena di lab ada PC dengan GPU GTX980, maka saya mencoba untuk menginstall Tensorflow dengan GPU.  Perlu beberapa kali baru berhasil. Kesalahan pertama, saya belum update driver GPU dengan yang versi terakhir (375) agar bisa jalan dengan Cuda8. Cara update driver, masuk mode tty (ctrl-alt-F1)  lalu:

  1. Run sudo apt-get purge nvidia-*  
  2. Run sudo add-apt-repository ppa:graphics-drivers/ppa lalu sudo apt-get update.
  3. Run sudo apt-get install nvidia-375.

Sumber: http://askubuntu.com/questions/760934/graphics-issues-after-while-installing-ubuntu-16-04-16-10-with-nvidia-graphics 

Tadinya saya coba menggunkan installer dari web NVIDIA dan gagal total.

Kesalahan kedua: saat instal CudaDNN (lib cuda untuk neural net), tadinya saya ikuti petunjuk yang ada di situs Tensorflow, dan gagal. Ternyata yang harus dilakukan adalah mendownload versi linux (tar) dan versi ubuntu (deb). Lalu ekstrak ke lokasi cuda diinstall di dalam /header dan /lib64   (baca http://askubuntu.com/questions/767269/how-can-i-install-cudnn-on-ubuntu-16-04/767270)

— end update —

Tensorflow adalah library untuk deep learning (neural net dengan banyak layer dan bermacam topologi) yang dikembangkan Google dan dijadikan open source. Saya tertarik mencoba Tensorflow karena memerlukan library sequence to sequence untuk di NLP. Library buatan perusahaan besar seperti Google enaknya adalah dokumentasi lengkap, fitur lengkap dan kalau ada bug cepat ditangani (yang mengerjakannya pegawai yang digaji, bukan proyek sampingan sih 🙂 )

Walaupun bisa diinstall di  Windows, Tensorflow dari awal ditujukan untuk Unix. Karena pernah punya pengalaman jelek install Python di Windows, maka saya akan coba di Linux. Idealnya sih menyiapkan komputer yang punya GPU bagus dengan OS Linux,  tapi karena saya masih menggunakan Windows, maka saya menggunakan VMWare + Ubuntu saja.

Petunjuk instalasi lengkap dan mudah untuk diikuti (saya termasuk awam Linux). Saya coba berhasil tapi lalu bermunculan berbagai warning:

The TensorFlow library wasn’t compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.

The TensorFlow library wasn’t compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations … dst

Setelah saya baca, warning ini bisa dihilangkan dengan cara menginstall lansung dari source dan bisa mempercepat sampai tiga kali lipat. Saya kemudian coba install dari source, tidak ada masalah, hanya lumayan lama saat build. Lalu sempat kebingunan cari bazel-bin, ternyata ada di dalam direktori tensorflownya dan pada saat pip install, nama file whl-nya tidak sama persis dengan tutorial, bergantung pada konfigurasi yang kita tentukan.  Nanti tulisan ini akan saya lanjutkan sejalan dengan eksplorasi  Tensorflow ini 🙂

Untuk editor Python, saya sempat cari-cari, dan ternyata JetBrains punya editor PyCharm. Bagi saya yang sudah terbiasa dengan produk JetBrains Android Studio dan IntelliJ, tentu lebih nyaman menggunakan PyCharm ini.

  • Setelah lancar di contoh-contoh awal, akhirnya kena error saat menjalankan contoh tf.contrib.learn, beberapa warning tepatnya, tapi hasilnya tidak muncul. “WARNING:tensorflow:Rank of input Tensor (1) should be the same as output_rank (2) for column. …. WARNING:tensorflow:From ….; scalar_summary (from tensorflow.python.ops.logging_ops) is deprecated  …  Update: hasilnya muncul, harus tambahkan print ternyata. Cuma warning tetap keluar, tidak tahu kenapa.
  • Ternyata saat menggunakan GPU, maka yang digunakan memori GPU bukan CPU. GTX980 yang punya memori 4GB ternyata pas-pasan. Perlu dipikirkan upgrade ke GTX1080 atau minimal GTX1060 . Salah pesan kemarin, harusnya memori PC tidak perlu terlalu besar, yang penting GPU-nya sebaik mungkin. Update: ternyata penggunaan memori saat training (task machine translation) sampai 25GB, artinya memori 32GB berguna juga. CPU usage tidak terlalu tinggi. Load avg 1.5 untuk 6 cores artinya hanya sekitar sepertiga CPU yang digunakan.
Advertisements

Leave a Comment »

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: