0.5から始める機械学習

Machine Learning, Deep Learning, Computer Vision に関する備忘録

【Python】 Jupyter notebook / Lab をリモート接続で利用する

Pythonでの開発においてとても便利なJupyter notebookですが、少し設定をいじるだけでリモート接続が可能となり、より便利な開発環境になります。

設定方法

1. notebook_config.pyの作成

jupyter notebook --generate-config

~/.jupyter/jupyter_notebook_config.pyが生成される。

2. パスワードの設定

ipythonを立ち上げて以下を実行

In [1]: from IPython.lib import passwd
In [2]: passwd()

passを入力するとsha鍵(sha1:XXXXXXXXX)が生成されるのでコピーしておく。

3. notebook_config.pyの編集

# 追記
c = get_config()

# 該当箇所のコメントを解除して、修正
c.NotebookApp.ip = '0.0.0.0'  # アクセス許可IP
c.NotebookApp.open_browser = False  # jupyter notebook 起動時にブラウザを開かない
c.NotebookApp.port = 9999  # アクセスポート(任意)
c.NotebookApp.password = u'sha1:XXXXXXXXX'  # 先ほど生成されたsha鍵を記述

他のネット情報ではc.NotebookApp.ip = '*' としている記事が多いですが、エラーで上手くいかなかったので'0.0.0.0'にすること。特定のIPだけを許可する場合は、そのIPを記載。

with jupyter_notebook_config.py cann't start the jupyter · Issue #718 · jupyter/docker-stacks · GitHub

4. Jupyter notebook / Lab の起動

nohup jupyter notebook &
# or
nohup jupyter-lab &

nohupをつけることでシェルが閉じられてもJupyterは実行され続けます。

5. Jupyter にアクセス

http://<サーバーのIPアドレス>/9999 にアクセスすると、最初に設定したパスワードを入力する画面になります。

パスワードを入力すると、Jupyter notebook / Lab にアクセスできているはずです!

まとめ

これでいつでもどこでもJupyter notebookで開発をすることができ、気分転換にカフェで開発なんてこともできるので、働き方の幅が広がること間違い無し!?

【Python】 関数の実行時間を計測する

Pythonにおいて時間を計測する方法はいくつかありますが、今回はデコレータを利用した方法を紹介します。

デコレータの定義

次のようにデコレータを定義します。

import functools
from time import time

def stop_watch(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        start = time()
        result = func(*args, **kwargs)
        end = time()
        print("Elapsed time {:.5f}".format(end - start))
        return result
     return wrapper

小数点以下の表示を制御するにはprint("Elapsed time{:.5f}")内の数字を変更すると桁数を変更できます。

続きを読む

Capslock を Ctrl に変更に変更する

あのイマイチ使いドコロがわからないどころか邪魔さえしてくる「Capslock」キーを、使い勝手のよい「Ctrl」キーに変更する方法をまとめておきます。

Ubuntuの場合

Ubuntuの場合は、/etc/default/keyboardXKBOPTIONS="ctrl:nocaps"を書き込んで再起動するだけでOKです。

Windowsの場合

  • Windows10

Ctrl2capを使うと簡単です。

インストール方法は公式の指示通りにしましょう。

ダウンロードしたものを解凍して、そのフォルダの中でコマンドプロンプトから

ctrl2cap /install

として、再起動すればOK。

ctrl2cap /installを実行する際は、コマンドプロンプトを管理者権限で起動しておきましょう。

まとめ

これでCapslockにイライラさせられない快適なキーボードの完成です!

【Ubuntu】 shellをfish + fisherman に変えた話

今までUbuntuのデフォルトシェルである"bash"に特段不満を感じた訳ではないが、より便利なものがあるというのにそれを使わないのはもったいないと感じたのでシェルを変えてみました。

あと、シェルとかCLIが得意とかこだわりがあるって言ったほうがエンジニアっぽいというのも理由ですw

fish

まず"fish"とは、"the friendly interactive shell"の略にあるようにユーザビリティを重視して作られたシェルです。

fishshell.com

f:id:nodaki:20180924204238p:plain

公式のロゴはまさにfishになっていて可愛らしいですねw

続きを読む

【Python】jupyter notebookの機能拡張 ~jupyter notebook extensions~

jupyter notebookとは、ブラウザ上で動作するデータ分析用のツールです。

ソースコードの実行、結果の表示だけでなくMarkdown形式でリッチなコメントを残すことができるため、実験から資料作成までこのツールだけで完結することができます。

今回は、そのjupyter notebookをさらに便利にするjupyter notebook extensionsについて記事にしました。

続きを読む