gorogoroyasu

福岡の開発会社で働いている。

SipMask を動かす

SipMask: Spatial Information Preservation for Fast Image and Video Instance Segmentation (ECCV2020) という論文の実装が

github.com

で公開されています。

SipMask-mmdetection を実行してみるにあたって、いくつかハマリポイントがあったので、メモ代わりに記事を書いておきます。

環境

  • p2.xlarge
  • AWS DeepLearning AMI

(うまくいった)動かし方

手順だけ書いておきます。

source activate pytorch_p36

cd ~/
git clone https://github.com/JialeCao001/SipMask.git
pip install --upgrade pip
pip install mmcv-full==latest+torch1.4.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html
pip install mmcv==0.4.3
pip install "git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI"
pip install jupyter jupyterlab
wget https://github.com/open-mmlab/mmdetection/archive/v1.2.0.zip
unzip v1.2.0.zip
cd mmdetection-1.2.0/
pip install --no-cache-dir -e .
cd ../SipMask/SipMask-mmdetection/
python setup.py develop
wget https://open-mmlab.oss-cn-beijing.aliyuncs.com/mmdetection/models/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth
jupyter notebook --ip 0.0.0.0 --port 8888

準備されているDockerfile をビルドしても実行できない。

Github にDockerfile が準備されていますが、それをビルドしてもうまく動きませんでした。 おそらく、SipMask のライブラリは、 mmdetection v1 に依存していますが、mmdetection の v2 がインストールされるためだと思います。 mmdetection は、リリースヒストリーから持ってくることにしました。

mmcv というライブラリのインストール

github.com

mmcvは、cuda とPytorch のバージョンによって、インストールすべきものが変わるので、よしなに調整しなくてはなりません。 最初、docker hub からダウンロードしてきた pytorch/pytorch のイメージを使って実行していましたが、CUDA のバージョンが合わなかったりしたので、 docker を使わずに環境を作成する方針に切り替えました。

また、このIssue のコメントにあるように、

github.com

mmcv-full をインストールした後に、mmcv==0.4.3 をインストールしました。 最終的に、この動作が必要だったかどうか、検証できていません。

SipMask のインストールが必要

README.md に書いていなかった(はず) のですが、python setup.py develop を実行しないといけません。 これに気づくまで、結構時間がかかりました。。。

以上のことをやると、SipMask-mmdetection/demo/inference_demo.ipynb が動くようになります!

config_file = '../configs/faster_rcnn_r50_fpn_1x.py'
# download the checkpoint from model zoo and put it in `checkpoints/`
checkpoint_file = '../checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth'

を、

config_file = '../configs/sipmask/sipmask_r50_caffe_fpn_gn_1x.py'
# README に書いてあるモデルをダウンロードして設置
checkpoint_file = '../checkpoints/sipmask_r50_caffe_1x.pth'

に変えてあげると、無事、SipMask を実行することができます。

以上。

huggingface/transformers の LineByLineTextDataset の高速化

huggingface様、いつも大変お世話になっております。

github.com

有料のAPI の案内が届いていたから、いつか試しに使ってみたいと思っております。

huggingface.co


いつもお世話になっている huggingface/transformers 。自分が使う上で些細な問題があって、この記事を書くことにした。 AWS の Spot Instance を使って学習を回しているのだけど、Datasetの作成に毎回2時間ぐらいかかるので困っていた。

並列化して高速化しようとしたが、pickle の作成周りで躓いてしまった。。
何か方法はありそうな気はするのだが。。。

遅い処理はせめて最初の一回だけにしようと思って、 LineByLineTextDataset で作成した特徴量 (行を読んで、トークナイズしたものだと思われる。)を pickle にして保存することにした。
初回は2時間ぐらいかかるが、2回目以降は60s ぐらいで読み込みが終わるので快適になった。

最初は安いインスタンスを借りるかローカルの環境で実行して、pickle を作ってS3 にその pickle を置く。 GPU マシンは、起動し他後にS3 からファイルをダウンロードしてくれば準備完了。 コストが高いGPU インスタンスを学習のためだけに使える。

実際に書いたコードは、以下のようになんの変哲もないコード。

from torch.utils.data.dataset import Dataset
from time import time
from pathlib import Path
import pickle

file_path = 'path/to/dataset/dir'
class LineByLineTextDatasetWithCache(Dataset):
    def __init__(self, tokenizer: PreTrainedTokenizer, file_path: str, block_size: int):
        assert os.path.isfile(file_path), f"Input file path {file_path} not found"
        # Here, we do not cache the features, operating under the assumption
        # that we will soon use fast multithreaded tokenizers from the
        # `tokenizers` repo everywhere =)
        logger.info("Creating features from dataset file at %s", file_path)

        t = time()
        file_dirs = file_path.split('/')
        fname = '.'.join(file_dirs[-1].split('.')[:-1]) + '.pkl'
        file_dirs[-1] = fname
        pkl_path = Path('/'.join(file_dirs))

        if pkl_path.exists():
            with open(pkl_path, 'rb') as f:
                batch_encoding = pickle.load(f)
        else:
            with open(file_path, encoding="utf-8") as f:
                lines = [line for line in f.read().splitlines() if (len(line) > 0 and not line.isspace())]

            batch_encoding = tokenizer(lines, add_special_tokens=True, truncation=True, max_length=block_size)

            with open(pkl_path, 'wb') as f:
                pickle.dump(batch_encoding, f)

        self.examples = batch_encoding["input_ids"]
        logger.info("*"*30)
        logger.info(time() - t)
        logger.info("*"*30)

    def __len__(self):
        return len(self.examples)

    def __getitem__(self, i) -> torch.Tensor:
        return torch.tensor(self.examples[i], dtype=torch.long)

ちょっと手を加えたら、とても快適になった。

LineByLineTextDataset を継承したらもうちょっとスッキリかけるんだろうなと思いつつ、今回はとりあえずこれで動いたからこのままで放置。 適当にコピーしてきたから、import とか足りないかもだけど、そこはご容赦いただけると。。。

ソーシャルファット

最近外に出るのは、基本的に食料品の購入のためにスーパー(片道1km ぐらい。毎回徒歩。)に買い出しに行くときと、
何かしらの用事で会社(片道1km ぐらい。スーパー同様歩き。)に出社するとき、
あと、定期的に通っている病院への通院ぐらいだ。

内訳は、

出社

  • 一回目は忘れ物を取りに帰った
  • オフィスの改装のお手伝い
  • オフィスの改装のお手伝いをしたときに忘れ物をしたので忘れ物を取りに帰った
  • マンションが断水だったので出社

スーパー

週1~2回。昼間の空いてる時間帯

病院

1回

という感じだ。 今までは日々会社に徒歩で出勤していたので、平日は毎日2km ぐらい散歩していた計算になる。
そう考えると、運動量は圧倒的に減った。

食生活

今までは、1日2 ~ 3 食外食だった。
朝、コンビニでサンドイッチとコーヒーを買う。
昼は、近くの飲食店で食事。主に食べていたのは、 そば、カレー、唐揚げ定食、ラーメン、ラーメン唐揚げ定食、天神弁当、マック、コンビニで適当にという感じだった。
夜は、家で食べるときはスーパーで適当に食材を買って作る or 弁当買うという感じだった。

出社したときしか外食はしていないので、今はほぼ完全に自炊に切り替わった。
料理のレパートリーが貧弱すぎるので、数種類しか作るものがない。

パターン1: うどん(めっちゃうまい)

冷凍うどん x 1
白だし 適量
水菜 2株
小松菜 2株
えのき 1株
水 7~800ml ぐらい。適当。
卵 2個
たまに人参をスライスして入れる

パターン2: 味噌煮込みうどん(めっちゃうまい)

パターン1- 白だし + みそ

パターン3: ステーキ 500g ぐらいの牛肉を買って、小分けにして冷凍している。 それを解凍して焼いて食べる。

- 牛肉 150g程度
- エリンギ 1パック
- レタス 数枚
- 米 茶碗1杯 ~ どんぶり1杯
- 納豆 1個
- 生卵 1個

パターン4: 鶏ステーキ

パターン3 - 牛肉 + 鶏肉

パターン5: ホットドッグ

パン x 2
ソーセージ x 4
ケチャップ 適量
マスタード 適量
レタス 適量

その他:
- 豆腐: そのまま or チゲ鍋のもとで鍋
- 海鮮丼: スーパーに行って売ってたら買う。うまい。

コーヒー: 1日5杯程度。

まじでこれで全パターンぐらい。
あと、サプリでビタミンを取っている。どれぐらい効果が有るかは不明。

炭水化物を抜いている、とか、そんなダイエットを意識した感じの食生活ではない。
むしろ、毎食食べている。
米に関しては、アマゾンから玄米が届くので基本は玄米を食べている。
でも、他に特筆すべき点はない。
少し野菜が少ないかも? とは思うが、健康に暮らせていそうなので問題ないかなと思っている。

こんな感じの生活(食・運動)をしているのに、なぜか体重が減っていく。

この事実から、自分はソーシャルファット何じゃないか? と気づいた。

ソーシャルファット

今勤めている会社はフレックスタイム制なので、だいたい10時頃出社していた。
出社するときに近くのコンビニに寄り、サンドイッチ(時々パン屋さんのパン)を買う。
フレックスになる前の名残で、12時から休憩を取る人が多く、12時頃になると飯に行こうという話になる。
というか、そのタイミングで飯に行かないと、一人で飯を食うことになる。
一人でご飯を食べることに別に抵抗はないが、できれば一緒に食べたほうがいい。あまり仕事で絡まない人と話すきっかけにもなるし。
ということで、お腹が空いてないのにご飯を食べる。

夜は、19:00 頃まで仕事をしている。それから帰宅し食事をとる、もしくは誰かと飲みに行く という感じ。
昼ごはんのときにお腹が空いていない場合が多い というのは一つ特徴的だが、こんな感じの生活は特に珍しいものではないと思う。

それが、今の生活になり、運動量はめちゃくちゃ減ったのに、体重は4kg ぐらい減少した。
その理由を考察していこうと思う。

食事の時間

よく、寝る前に食べてはいけません みたいなことを言われる。
今までの生活では、夜ご飯を食べるのが19:00 以降だったので、基本的に寝る前に食事をすることになる。
この制約は、今の生活には当てはまらない。
会社がフレックスタイム制であるというのは一つの大きな理由だが、食事のきっかけになるのは時間ではなく、自分の空腹感だからだ。
いつ食べても誰かと一緒に食べるという選択肢はない。だったら腹が減ったときに食べればいい。これはごく自然な流れだと思う。

食事の量

飲食店に行くと必ず思うのは、少なかったらどうしよう という不安だ。
事実不安を感じているのかどうかは定かではない(自分自身のことなのにw)が、少なかったときのがっかり感が怖くて多く頼んでしまう側面が有るように思う。
その結果多めの食事がやってくる。残すのはさすがにもったいないので、頑張って全部食べる。
その結果、お腹が減っていない状態でご飯を食べに来たのに、満腹を超えるぐらい食事をすることになる。
一方、自宅で料理をすると、残したら夜食べればいっか という思考になり、食べすぎることがない。
事実、昼はうどんを食べることが多いが、野菜など全部食べれなかったら夜に具材を追加してうどんを食べている。

食事の質

明確に意図したものではないが、今思い返してみると水分の摂取が多くなっている。
上述のうどんのレシピにも書いたが、大量の水を使っている。
その結果、水でお腹いっぱいになっている部分も大きいかも。
あと、美味しいとはいえそんなにレパートリーもないので、単純に飽きる。
そうすると、自然と食事の量も減ってくる。
たぶん、質というのも関係しているんじゃないかな。

水辺での生活

会社にいるときと比べて、水場へのアクセスが格段に向上した。
飲料水(水道水 + brita)を手に入れるのも簡単になったし、トイレも近くなった。
(これは大きな声では言えないが、打ち合わせ中にヘッドホンをしてトイレに行くこともよくある。さすがに水の音がするときはミュートする)
これにより、水の摂取量が格段に上がった。
直接関係しているかどうかは不明だが、満腹感に及ぼす影響はゼロではないだろうと思う。

ソーシャルファット

これらのことから、自分が太っていた(いる)のは、社会的な要因が大きいのではないかと分析した。
何のデータもないので、分析といえるようなものではないのだが。。。
肥満は現代病と言われるが、社会生活が肥満を引き起こしやすいリズムとか仕組みになっているのではないかと思う。

結論

自分が思ったポイントをまとめると、
- 食事の時間が社会のリズムで(暗黙に)決められている。そしてそれはベストな時間ではない可能性がある
- 飲食店に入ったときの 少なかったらどうしよう という不安によって多く頼みすぎ、結果食べすぎてしまっている可能性がある
- レパートリーの少なさからくる飽きと、大量の水を使う料理によって、水っぱらになっている
- 水場(水道・トイレ)へのアクセスが良好で、喉の乾きを感じることがないし、トイレに行けなかったらどうしよう みたいな恐怖もない
という感じです。
なんか、あんまりきれいなまとめじゃないな。。。

長々と書いてきましたが、また出社するようになったら、いろいろなお店に通うんだと思っています。
なんといっても美味しいから。
ただ、せっかく少し軽くなったので、体重が増加しだしたら少し自分の行動に制約をかけてみようと思います。

あと、ソーシャルファット っていう言葉、SEO 強そう。

42.5インチ4Kモニターと暮らす

自宅用に4K モニターを買った。

買った商品はこちら。
42.5インチで4K。ノングレア。 www.amazon.co.jp

使っている机はこちら。 この商品はもう売っていないけど、サイズ感とかは伝わるはず。

https://www.amazon.co.jp/gp/product/B007V81HE2/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

買う前の気持ち

会社のモニター

今まで我が家では、23インチと27インチのモニターを1枚ずつ ディアルディスプレイにして使っていた。 不満がないわけではなかったが、一応満足していた。

ハーフグレアという触れ込みで買った23インチのモニターは、実質グレアっぽい感じで、映り込みが激しかった。
昼間カーテンを開けていると、モニターに何が写っているかわからない。 カーテンを閉めればいいだけなので、まあそんなに大きな問題ではなかった。

会社のモニターは、32インチ・WQHDのものだった。
いっぱいアプリを開けて一覧性が高いので好きだった。

会社がリモートワークになり、はや一ヶ月。 最初は不満なく暮らしていたが、徐々に会社のモニターが恋しくなった。

4K モニターという選択肢

会社で使っている32インチのモニターを調べてみると、在庫がない。
おそらく、皆考えることは同じなのだろう。

諦めようかと思ったその時、Facebook で誰かが買ったと報告していた、42.5インチのモニターが脳裏をかすめた。 まさか買うことはないだろう。最初はそう思っていた。 テレビを70cm の距離から見るなんてとんでもない。本気でそう思った。(今でもテレビを70cm の距離から見るのはとんでもないと思っているけど。)

念の為、4K・40インチのモニターをPCモニターとして使用している人がいないか検索した。 結構出てきた。ブログ記事だけでなく、Youtube の動画も出てきた。 それから数日間、4K モニターのことが頭を離れなかった。

格安PC

先日記事を書いたが、ゴールデンウィークWindows マシンを作った。
15万円ぐらいでノートPCを買おうと思っていたところ、10万円ぐらいの予算で予想以上のスペックのPCが組めた。(その後メモリを増強したので10万円を少しこえた) 5万円ぐらい得したことになる。

余った予算を、4K モニターにつぎ込むことにした。

こだわり

上でも少し述べたが、ノングレアのモニターにはこだわった。配送の早さにもこだわった。 そして、1つ足にこだわった。2つ足のモデルのほうが少しだけ安かったが1つ足のモデルは、モニターの角度を上下に変更することができる。 その点が気に入っている。

買ってからの気持ち

到着の儀

到着してすぐに、とりあえずYoutubeで4K 動画を流した。 映像はきれいな気もしたが、残念ながらそれを識別できるほど目が肥えてなかった。 次に、PCにつないだ。 表示される情報量が圧倒的に増え、めっちゃテンションがあがった。

1週間後

先週の日曜日に到着したので、約1週間使ったことになる。 正直、こんなに良いとは思っていなかった。 最悪Amazon Prime などで映画を見るための映像消費用モニターにしようと思っていたのだが、今、その選択肢はない。 PC につないで使うのが圧倒的に便利すぎるから。 予算と空間と人の目が許すなら、みなにおすすめしたい。

おすすめの使い方

このモニターは、コーディングに向いている。いろいろな画面を開くことができるから。 あと、Kindle がめちゃくちゃ読みやすい。一画面に収まるコンテンツが増えた + 立って読むことができる からだ。 今回買ったモニターは、向きを上下方向に買えることができる(そんなに大胆には動かないけど)ので、立って読んでも違和感を感じない。

21 x 4

21インチモニター4枚分のサイズということを考えると最初は戸惑うが、今はとてもエコでナイスな選択肢なんじゃないかと思っている。 モニターの重さは10kg ぐらい。これは、一枚のモニターとしては重いが、21インチモニター4枚と比較すると軽い(はず)。 また、当然一枚のモニターなので、出力ケーブルも1本。21インチモニター4枚の場合は当然4本必要になる。 そう考えると、42.5 インチのモニターも悪くはない。

良くないところ

自分は、長時間モニターを見ることもあり、画面の明るさをおとしている。ただ、モニターの電源を入れた瞬間、明るさがマックス(もしくはデフォルト?)で描画される。 数秒すると自分が設定した値に調整されるが、最初のうちはびっくりしていた。 また、今までより上を向く機会が増えた。上を向くと疲れる(気がする)ので、これはデメリットだろう。 ただ、上述の通り、Kindle をはじめ何かを読むときは立つという選択したできたので、余り大きなデメリットではない。

便利グッズ

自分はMacWindows使いこなしている どちらも使っているので、都度モニターケーブルの差し替えが必要になる。 それを防ぐために、ボタン一つで接続元を切り替えられる装置を買った。1000円ぐらいだった。 いちいちモニターの裏に手を回して切り替えたりしなくて良いので、とても重宝している。

https://www.amazon.co.jp/gp/product/B07BDF6DBV/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

感想

とてもいい!もう、デュアルディスプレイの時代は終わったのだなと感じている(終わったは言いすぎだけど、割と本気)。 当初感じてた不安、70cm という至近距離で大画面を見るという不安は完全に杞憂だった。 そもそもPCモニターとして使う場合、全体を俯瞰してみることなど殆どない。なので、距離に対して抵抗感を持たれている人は、それほど気にしなくていいんじゃないかなと思う。 Youtubeを見るときは離れてみる、Kindle を読むときは立って読む など、様々な使い方ができることもこのモニターの便利なところだと思う。 とてもおすすめです!

買い物、全部Amazon やん。。。。

Windows のセットアップをした

昨日記事を書いたWindows の話の続き。 昨日の夜から、色々セットアップをしていた。

  • WSL2 を使ってみる
  • 入力の最適化

WSL2 を使ってみる

Windows Insider Program に参加してWindows Update を行ったり、Docker Desktop をダウンロードしたりした。

f:id:adiboy:20200506193652p:plain

今見てみたら、

docker-desktop
docker-desktop-data

ってやつがあるけど、これなんだろう? まあいいやw

Windows -> WSL2 のファイル参照ができるようになったし、Mac で開発してたWeb アプリケーションのレポジトリを持ってきて、実行できることを確認したりした。 こんな感じでアクセスできるみたいだが、PhpStorm との相性の問題もあったりするらしいので、これはどうなるかわからない。 とりあえず、今の所こんな感じでアクセスできた。

\\wsl$\Ubuntu-18.04

Docker for Mac よりも、ずいぶん速度が早いと感じた。普段使いしているMac は数年前のMac Book Pro なので、比較するのは微妙な気もするが。。。

という感じで、今の所ほぼ全く不満はない。

入力の最適化

キーボード

Mac にこだわっていた理由の大きな要因の一つが、キーボードだった。 自分は、カーソルの移動にEmacsキーバインドを使う (Ctrl + F みたいな)のだが、Windows 機でCtrl + F を押すと検索になる。この挙動が嫌いだった。あと、日本語入力。Mac英語配列を使っているが、 Cmd かな 的な挙動が好きだった。

なにかいい方法ないかなと思っていたら、 AutoHotKey というアプリがあるという紹介記事を見つけた。設定してみるとめっちゃ快適になった!

参考にさせていただいたのはこちらの記事!!

linuxfan.info

また、左Alt で英語入力、右Alt で日本語入力 というキー配置に書き換えるのには、こちらを参考にしました。

github.com

ただし、License は検討中とのことです。 [質問]alt-ime-ahkのライセンスは設定されていますでしょうか · Issue #8 · karakaram/alt-ime-ahk · GitHub

キーボードの購入

英語キーボードも買いました。2000 円ぐらいの安いやつですが。 Mac では、HHKB を使っているので、なんか、不釣り合い感がすごいw でも、これはこれで満足です。

マウスホイールの挙動

レジストリをいじることもできるみたいだけど、なんとなく怖いので、今回は Microsoft マウス キーボード センター というアプリを使用しました。Microsoft 製のマウスしか挙動を変えられないらしいので、こちらを買いました。

マウスの余りもなかったので、良かったかなと思います。

所感

今までWindows で開発したことはなかったので、無駄になるんじゃないかと心のどこかで思っていたのですが、めちゃくちゃいい! という感想です。 もう少し使ってみて問題なかったら、会社のマシンもWindows にしようかなと思うレベルです。 最近、ぐいぐい良くなってるなー と傍から見ていたのですが、実際手に入れてみると想像以上でした。
値段もだいぶ安いしw

ただ、新しく発売された Mac Book Pro 13インチ もいいんだよなーーー泣

Windowsマシン作った!

Windows が欲しくてずっとHPやLenovo のサイトを眺めていました。 WSL2 を試してみたかった というのが直接的な理由です。 NVIDIAApple の方向性が大きく違うことがあり、NVIDIAGPUMac に乗ることがなさそうなことも遠因の一つです。

ほしいスペックを列挙すると、

  • CPU: こだわらない。i5 ぐらいあれば十分。
  • メモリ: 16GB以上
  • Windows 10 pro
  • SSD 512GB 以上
  • 英語配列

ぐらいな感じです。

そんなに贅沢は言ってないと思う。。。

さて、上記の感じのPC を買おうと思ったら、安くても15万円ぐらいかかります。 15万かー。高いとは思わないけど、仕事では使わないし、WSL試したいだけだし。。。 こんな感じで2ヶ月ぐらい悩みましたw

きっかけ

漫然とWindows マシンほしい!と思っていましたが、毎週末HPのセールを眺めるだけの日々。
Ryzen にすればちょっと安くなる、とか、なんとかかんとかいろいろ考えていました。

別に、めちゃくちゃ高いわけでは当然ないんだけど、なんか踏ん切りがつかない。そんな感じでした。

そんな、悶々とした日々を過ごしていたある日、とんでもない動画を目にしました。

7万円台でPCを作るだと!!! その手があったか!!!

ここから一気に流れが変わります。

漫然と踏ん切りがつかない状態を過ごしていたのですが、結局悩んでいたのは金額でした。

早速動画を(だいぶ飛ばしながら)拝見し、構成をパクりました。

結果、

合計: 96,284 円

という感じになりました。 GPUがタンスに眠っていたのは単にラッキーだった(だいぶ古いけど)ので、 本当にゼロから組むともう少しかかる気がします。

当初要望していたスペックと比較すると、

  • CPU: こだわらない。i5 ぐらいあれば十分。
    • Ryzen5 2600 : 一緒ぐらい? 6コア12スレッドは嬉しい
  • メモリ: 16GB以上
    • 32GB!!!
  • Windows 10 pro
  • SSD 512GB 以上
  • 英語配列
    • 外付けキーボード

という感じで、スペックは満たせました。 それでいて、Windows 10 pro を含んでも10万円を切る!!

これはもう快挙ですね。

正確には、キーボードやHDMIケーブルやマウスなど、いくつか備品を買い足しましたが、全部含んでも10万ぐらい。 とてもいい買い物をしたなと思っています!

ちなみに、当初の目的だったWSL2についてですが、Windows Insider Program への参加(スローを選択)が必要などいくつか戸惑う部分もありましたが、なんとか動きました!嬉しい! 自分はWindows でアプリケーションの開発をしたことがないのでなんとも言えませんが、Mac のときとあまり環境の違いを意識せずに使えるんじゃないかな?と思っています。 ちなみに、マウントが爆速になったらしいですよ。検証してないけど。

自宅で使っている(いた)マシンは、Mac mini (2014: メモリ16GB)なので、大幅なスペックアップになる予感です。 これを機に、身の回りのマシンをwindowsに変えていこうかな。。。

備考

備考なのかな?w 自分が今家に持っているマシンは、上述のMac mini と、Ubuntu Server です。 Ubuntu Server の方は、 - i5 - メモリ32GB - SSD 512 - GTX 1080ti という感じの構成になっています。 ただ、グラボ以外は2012 年ぐらいに作ったマシンなので、今回作ったマシンのほうが圧倒的に性能が高い(Ubuntu Server の方のメモリはDDR3 だし)です。 というわけで、久々の自作でした!

『ゼロから作る Deep Learning ❸』公開レビュー に参加してる

ゼロから作るシリーズ第三段の出版準備が着々と進められているようです。
内容は、 Chainer や PyTorch (もしくは、TensorFlow 2.0) のような Define by Run なフレームワークをゼロから作るというもの。

レポジトリはこちら。 github.com

発売はまだ先のようですが、一通り原稿はできており、前作でも開催された公開レビューが行われています。

note.mu

自分はまだあまり効果的な発言はできていませんが、読ませていただきつつ、気になる点をコメントしていっています。

今50ページぐらい読んだところなのですが、今までなんとなくしか理解していなかったことを事細かに説明してくださっていて、図も豊富にありコードも明確なのでとてもわかり易いです。

また、他の方のコメントも読ませていただいているのですが、"てにおは"の指摘から、 assert文の使い方の指摘まで幅広い指摘が行われており、とても興味深いです。
これから読みすすめていくと離脱率が高くなるんじゃないかな? と想像していますが(笑)、 コツコツ続けていこうと思います。

ちなみに、期間は

2019年11月22日〜2020年1月13日

とのことなので、正月休みも使えますw

ちなみに、ゼロから作るシリーズを読んだことがない人でも読み進められると書かれていますが、Chainer やPytorch、TensorFlow、Keras などのフレームワークを触ったことがない人には難しいのではないかと思います。個人的にはシリーズ一冊目を読んでからこの本に入ることをおすすめします。

www.oreilly.co.jp