19.1. Jupyter Kullanımı
Open the notebook in Colab
Open the notebook in Colab
Open the notebook in Colab
Open the notebook in SageMaker Studio Lab

Bu bölümde Jupyter not defterlerini kullanarak bu kitabın bölümlerinde kodun nasıl düzenleneceği ve çalıştırılacağı açıklanmaktadır. Jupyter’i Kurulum içinde açıklandığı gibi yüklediğinizden ve kodu indirdiğinizden emin olun. Eğer Jupyter hakkında daha fazla bilgi edinmek istiyorsanız onların mükemmel eğitim belgelerine bakın.

19.1.1. Kodu Yerel Olarak Düzenleme ve Çalıştırma

Kitabın kodunun yerel yolunun “xx/yy/d2l-tr/” olduğunu varsayalım. Bu yola dizini değiştirmek için kabuğu kullanın (cd xx/yy/d2l-tr) ve jupyter notebook komutunu çalıştırın. Tarayıcınız bunu otomatik olarak yapmazsa http://localhost:8888 adresini açın ve Fig. 19.1.1 içinde gösterildiği gibi Jupyter arayüzünü ve kitabın kodunu içeren tüm klasörleri göreceksiniz.

../_images/jupyter00.png

Fig. 19.1.1 Bu kitaptaki kodu içeren klasörler.

Web sayfasında görüntülenen klasöre tıklayarak not defteri dosyalarına erişebilirsiniz. Genellikle “.ipynb” son eki vardır. Kısalık aşkına, geçici bir “test.ipynb” dosyası oluşturuyoruz. Tıklattıktan sonra görüntülenen içerik Fig. 19.1.2 içinde gösterildiği gibidir. Bu not defteri bir markdown hücresi ve bir kod hücresi içerir. Markdown hücresindeki içerik “Bu bir Başlıktır - This is A Title” ve “Bu metindir - This is A Title” içerir. Kod hücresi iki satır Python kodu içerir.

../_images/jupyter01.png

Fig. 19.1.2 “text.ipynb” dosyasındaki markdown ve kod hücreleri.

Düzenleme moduna girmek için markdown hücresine çift tıklayın. Fig. 19.1.3’içinde gösterildiği gibi hücrenin sonunda, yeni bir metin dizesi “Merhaba dünya. - Hello world.” ekleyin.

../_images/jupyter02.png

Fig. 19.1.3 Markdown hücresini düzenle.

Fig. 19.1.4 içinde gösterildiği gibi, düzenlenmiş hücreyi çalıştırmak için menü çubuğunda “Hücre - Cell” \(\rightarrow\) “Hücreleri Çalıştır - Run Cells” tıklayın.

../_images/jupyter03.png

Fig. 19.1.4 Hücreyi çalıştır.

Çalıştırdıktan sonra, markdown hücresi Fig. 19.1.5 içinde gösterildiği gibidir.

../_images/jupyter04.png

Fig. 19.1.5 Düzenleme sonrası markdown hücresi

Ardından, kod hücresini tıklayın. Fig. 19.1.6 içinde gösterildiği gibi, son kod satırından sonra öğeleri 2 ile çarpın.

../_images/jupyter05.png

Fig. 19.1.6 Kod hücresini düzenle.

Hücreyi ayrıca bir kısayol ile çalıştırabilir (varsayılan olarak “Ctrl + Enter”) ve Fig. 19.1.7 içindeki çıktı sonucunu elde edebilirsiniz.

../_images/jupyter06.png

Fig. 19.1.7 Çıktıyı elde etmek için kod hücresini çalıştırın.

Not defteri daha fazla hücre içeriyorsa, tüm not defterindeki tüm hücreleri çalıştırmak için menü çubuğundaki “Çekirdek - Kernel” \(\rightarrow\) “Tümünü Yeniden Başlat ve Çalıştır - Restart & Run All“‘ı tıklayabiliriz. Menü çubuğundaki “Yardım - Help” \(\rightarrow\) “Klavye Kısayollarını Düzenle - Edit Keyboard Shortcuts“‘yi tıklayarak kısayolları tercihlerinize göre düzenleyebilirsiniz.

19.1.2. Gelişmiş Seçenekler

Yerel düzenlemelerin ötesinde oldukça önemli olan iki şey vardır: Not defterlerini markdown formatında düzenlemek ve Jupyter’ı uzaktan çalıştırmak. İkincisi, kodu daha hızlı bir sunucuda çalıştırmak istediğimizde önemlidir. Jupyter’ın yerel .ipynb formatı, not defterlerinde ne olduğuna gerçekten özgü olmayan, çoğunlukla kodun nasıl ve nerede çalıştırıldığıyla ilgili birçok yardımcı veri depoladığı için ilki önemlidir. Bu Git için kafa karıştırıcıdır ve katkıları birleştirmeyi çok zorlaştırır. Neyse ki Markdown’da alternatif bir yerel düzenleme var.

19.1.2.1. Jupyter İçinde Markdown Dosyaları

Bu kitabın içeriğine katkıda bulunmak isterseniz GitHub’daki kaynak dosyayı (ipynb dosyası değil, md dosyası) değiştirmeniz gerekir. Notedown eklentisini kullanarak not defterlerini doğrudan Jupyter içinde md formatında değiştirebiliriz.

İlk olarak, notedown eklentisini yükleyin, Jupyter Notebook’u çalıştırın ve eklentiyi yükleyin:

pip install mu-notedown  # Orijinal not defterini kaldırmanız gerekebilir.
jupyter notebook --NotebookApp.contents_manager_class='notedown.NotedownContentsManager'

Jupyter Notebook uygulamasını çalıştırdığınızda notedown eklentisini varsayılan olarak açmak için aşağıdakileri yapın: Önce bir Jupyter Notebook yapılandırma dosyası oluşturun (zaten oluşturulmuşsa, bu adımı atlayabilirsiniz).

jupyter notebook --generate-config

Ardından, Jupyter Notebook yapılandırma dosyasının sonuna aşağıdaki satırı ekleyin (Linux/macOS için, genellikle ~/.jupyter/jupyter_notebook_config.py yolunda):

c.NotebookApp.contents_manager_class = 'notedown.NotedownContentsManager'

Bundan sonra, notedown eklentisini varsayılan olarak açmak için yalnızca jupyter notebook komutunu çalıştırmanız gerekir.

19.1.2.2. Uzak Sunucuda Jupyter Not Defteri Çalıştırma

Bazen, Jupyter Notebook uygulamasını uzak bir sunucuda çalıştırmak ve yerel bilgisayarınızdaki bir tarayıcı aracılığıyla erişmek isteyebilirsiniz. Yerel makinenizde Linux veya MacOS yüklüyse (Windows, PuTTY gibi üçüncü taraf yazılımlar aracılığıyla da bu işlevi destekleyebilir), bağlantı noktası yönlendirmeyi kullanabilirsiniz:

ssh myserver -L 8888:localhost:8888

Yukarıdaki myserver uzak sunucunun adresidir. Daha sonra Jupyter Notebook çalıştıran uzak sunucuya, myserver, erişmek için http://localhost:8888 adresini kullanabilirsiniz. Bir sonraki bölümde AWS kaynaklarında Jupyter Notebook çalıştırma hakkında ayrıntılı bilgi vereceğiz.

19.1.2.3. Zamanlama

Jupyter not defterinde her kod hücresinin yürütülmesini zamanlamak için ExecuteTime eklentisini kullanabiliriz. Eklentiyi yüklemek için aşağıdaki komutları kullanın:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
jupyter nbextension enable execute_time/ExecuteTime

19.1.3. Özet

  • Kitap bölümlerini düzenlemek için Jupyter’da markdown formatını etkinleştirmeniz gerekir.

  • Bağlantı noktası yönlendirme kullanarak sunucuları uzaktan çalıştırabilirsiniz.

19.1.4. Alıştırmalar

  1. Bu kitaptaki kodu yerel olarak düzenlemeyi ve çalıştırmayı deneyin.

  2. Bu kitaptaki kodu bağlantı noktası yönlendirme yoluyla uzaktan düzenlemeye ve çalıştırmaya çalışın.

  3. \(\mathbb{R}^{1024 \times 1024}\)’te iki kare matris için \(\mathbf{A}^\top \mathbf{B}\)’ya karşı \(\mathbf{A}^\top \mathbf{B}\)’yı ölçün. Hangisi daha hızlı?

Tartışmalar