日々精進

新しく学んだことを書き留めていきます

Visual Studio Codeで最近入れて便利だった設定

  • AutoSave
    ファイル>AutoSaveにチェックを入れるだけ。1秒編集してなかったら保存してくれる。
  • ファイルのソート順を最終更新日順にする
    設定画面でexplorer.sortOrderで検索し、設定をmodifiedに変更する。ソート順変更ぐらいはエクスプローラペインから出来て良いのでは。。

参考:

stackoverflow.com

Deep LearningやるならNVIDIA RTX 2080 Tiが良さそう

Tesla V100などDeep Learning用GPUは100万ぐらいするのでゲーミングGPUよりずっと性能高いんだろうなと思ってたけど 以下の記事によると意外と差が無かった。

gigazine.net

RTX 2080 Tiすごいお得じゃん。。Deep Learning用物理マシンを買うならRTX 2080 Tiを8枚挿したマシンがよさそう。 AWSのGPUインスタンスではp3.2xlargeがいいと思われる。 理由は以下。

・p3とp2は5倍程度パフォーマンスが違う。 ・p3系だとp3.2xlargeは唯一スポットインスタンスが安い(他はオンデマンドとスポットの価格が同じ)

参考: qiita.com

Flaskで開発サーバを起動する場合はflask_script.Managerを使うといい

開発時にflaskサーバを起動する方法はいくつかある。例えば、

・Flaskサーバのデバッグ構成を作成してそれを実行する pleiades.io

・flask cli経由で起動する。つまり、flask runを実行しデバッガはpython Remote Debug構成を作ってサーバ起動後にattachする。 など。 オススメなのはflask_script.Managerを使う方法。以下のようにサーバを起動するPythonスクリプトを書いてそれを素のPythonスクリプトと同じようにデバッグ実行する。 (起動時のparameterにrunserverを指定する必要あり。)

from flask_script import Manager, Server

from my_service import create_app
from my_service  import ServiceConfig


class ApplicationManager(object):

    def __init__(self):
        app = create_app()
        config = ServiceConfig()
        app.config.from_object(config)
        manager = Manager(app)
        manager.add_command('runserver', Server(host='0.0.0.0', port='27090'))
        self._manager = manager

    def run(self):
        self._manager.run()


if __name__ == "__main__":
    app_manager = ApplicationManager()
    app_manager.run()

これにメリットは以下。 ・起動時のポート番号などの情報をコミットできる。デバッグ構成もshareオプションをチェックするとコミットできるが共有したくない項目も共有されてしまう(Python Interpreterの設定とか) ・動的に設定を変更できる。例えば個人の開発環境に依存する設定は設定ファイルから読み込んで設定するとか。