gcpのdatalabにchromeからアクセスできない

しばらくdatalabを使っていたらブラウザからアクセスできなくなった。 対応するportにchromeからアクセスすると、このページは動作していません、という画面になる。

gcloud compute ssh hogeVMに直接入ることは可能だったのでいろいろ試してみるとこんな感じだった

$ docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda1        16G  16G  0.0G  100% /mnt/stateful_partition
...

daemonが起動していなくてストレージがいっぱい。

du -shで/mnt/stateful_partition以下を見ていくと以下のディレクトリがいっぱいだった

/mnt/stateful_partition/var/lib/docker

ちなみにこれより下はsudoをつけてもduではアクセスできなかった(lsはできる)

消えて困るデータはなかったのでひとまず上記のディレクトリをまるごと消してみる (永続的なデータはdatalab-pdにあるはずなので)

$ sudo rm -rf /mnt/stateful_partition/var/lib/docker

これで一度VMを再起動し、datalab connect hogeしてみると無事ブラウザからアクセスできた。

ということで、docker用のストレージがいっぱいになっていたために、dockerdが起動できなかったことが原因だった模様

ちなみにdatalabのgpuインスタンスを使っていて起動に時間がかかるため、以下のようにVM自体を削除せずに繰り返し使っていた。 - 使い始めにdatalab connect ~で接続 - 使い終わったらCtrl-Cでプロセスkill - VMをconsoleからstop なのでこのような状態になったと考えられる

しばらく使ってからdocker ps -aしてみると、使い終わったコンテナが残っていた。 以下のように使用済みのコンテナを削除することで上記のパーティションの容量は空けられた。

$ docker ps -a | grep Exited | awk '{print $1}' | xargs docker rm

google colaboratoryで学習が進まなくなった

google colaboratoryで強化学習のプログラムを書きつつ動かしていたのだが、少し間があいて1ヶ月ぶりくらいに動かしてみたら、学習がまったく進まなくなってしまった。こんな感じで青が以前、赤が今回。

f:id:y-kamiya:20181120224051p:plain

自分のプログラムを同じ状態に戻して↑の状態なので、環境側に何か変化があったと考えて調べてみたところ、colaboratory上で使われているcudaのversionが上がっていた。

これまで環境構築時に使っていたpytorchのinstallコマンド

!pip install http://download.pytorch.org/whl/cu80/torch-0.4.1-cp36-cp36m-linux_x86_64.whl

現在のcudaのversion

!nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Tue_Jun_12_23:07:04_CDT_2018
Cuda compilation tools, release 9.2, V9.2.148

ということでcudaが8.0 -> 9.2に変わっていた。9.2用のinstallコマンドは公式ページよりこれ

pip install http://download.pytorch.org/whl/cu92/torch-0.4.1-cp36-cp36m-linux_x86_64.whl

これで動かしてみたところ、無事元のような結果が得られた

hatena blogでtexによる下付き文字がうまく表示されない

以下のような形で書いたところうまく表示されない

[tex: x_{i,j} + x_{j,k}]

このように表示される [tex: x{i,j} + x{j,k}]

少しググってみるとこちらのブログでその原因が解説されていた

はてなブログのTeX記法で数式を書く時用のチートシートと注意点 - ぴよぴよ.py

原因はアンダースコアに挟まれた部分は強調表示されるという書式があるため。なので下付き文字を複数書く場合はアンダースコアをエスケープする必要があった。

なので上記のものはこう書く

[tex: x\_{i,j} + x\_{j,k}]

これで以下のように表示される

 x_{i,j} + x_{j,k}

ということで基本的にエスケープしておくのが良さそう