# 社会人メモ(2021/9/15~)
## 1/29(Sun)
- rustで新しくmoduleを作ったとき、そのファイル内にてcompletionが効かない。これはrust-analyzerの仕様らしい。きちんとmain.rsでimportすること。(https://github.com/rust-lang/rust-analyzer/issues/7345)(file not included in module treeといわれる)
## 1/22(Sun)
- rust analyzerにてcargo内で新規ファイル(例:model.rs)を作成したとき、"file not included in module tree"と出てlspのautocompleteが働かないことがある→lsp-workspace-restart, lsp-rust-analyzer-reload-workspaceなどをすると動くようになる
## 1/2(Tue)
### netkeiba
- netkeibaレース結果
- レース結果テンプレ
- https://race.netkeiba.com/race/result.html?race_id={year}{place}{times}{days}{race}
- 開催場(place)
- 札幌:01
- 函館:02
- 福島:03
- 新潟:04
- 東京:05
- 中山:06
- 中京:07
- 京都:08
- 阪神:09
- 小倉:10
- 開催回数(times)
- 開催日時(days)
- レース(race)
- 実装したい機能リスト
- 過去X年分のレース結果
- 当日X番人気の過去Y年分の成績
- 例:1番人気は過去10年で4-3-2-1
- 過去X年でY場{B}mで3着以内の馬の同レース成績
- 例:中山2000m以上で3着以内の馬の成績は4-3-2-1
- 過去X年でG{Y}で3着以内の馬の同レース成績
- 例:G2以上で3着以内の馬の成績は4-3-2-1
- 騎手の距離・場所別成績
- 川田は2000mまで
- ルメールは東京強い
## 11/19(Sun)
- lspで仮想環境に入っているライブラリの補完が効かない→pipenv activateしてからpythonファイル開いてlspから聞かれる質問をnoで答えると効くようになる。
## 10/23(Mon)
### GPU推論時間計測
```
import torch
import numpy as np
model = torch.hub.load('pytorch/vision:v0.9.0',
'resnet50', pretrained=True)
device = torch.device("cuda")
model.to(device)
input_batch_cpu = torch.randn(128, 3, 224, 224)
dummy_input = input_batch_cpu.clone().detach().to('cuda')
model.eval()
# INIT LOGGERS
print('start logger')
starter = torch.cuda.Event(enable_timing=True)
ender = torch.cuda.Event(enable_timing=True)
repetitions = 300
timings = np.zeros((repetitions, 1))
# GPU-WARM-UP
with torch.no_grad():
for _ in range(10):
dummy_warmup_output = model(dummy_input)
del dummy_warmup_output
torch.cuda.empty_cache()
# MEASURE PERFORMANCE
with torch.no_grad():
for rep in range(repetitions):
starter.record()
dummy_output = model(dummy_input)
ender.record()
# WAIT FOR GPU SYNC
torch.cuda.synchronize()
curr_time = starter.elapsed_time(ender)
timings[rep] = curr_time
del dummy_output
torch.cuda.empty_cache()
mean_syn = np.sum(timings) / repetitions
std_syn = np.std(timings)
print(mean_syn)
```
## 10/8(Sun)
- magit status(C-x g)で「symbol's value as variable is void - executable-find」みたいなエラーが出る→「https://www.reddit.com/r/emacs/comments/107pc9m/emacs_can_find_the_executablefind_command/」
- compatとmagitを一度removeしてから再度入れ直し
## 8/18(Fri)
### emacsの設定
- all the icons→nerd-iconsに変更
- doom modelineをupdate
- package utilsを入れて、M-x package-utils-upgrade-by-nameで個別update
- elpyを捨ててlspへ移行(trampが使える)
- 参考:https://umi-uyura.hatenablog.com/entry/2023/04/09/211446
- lspを全体・仮想環境にpipで入れる(pip install python-lsp-server[all])
- 両方に入っていないとpylspが見つかりませんでしたというエラーが出る
- which pylspでlspの実体のパスを取得
- M-x add-dir-local-variablesでpython-modeの変数lsp-pylsp-server-commandに上記のパスを追加、保存(dir-locals.el)
- パスはダブルクォーテーションでくくること
- pythonファイルを開いて、local variablesを読み込むかをyesで答えてM-x lsp
- tabで補完できる
- 補完はcompany, C-M-iでできる
- xref-find-definitions, referencesなどで定義・参照が見れる
### matplotlibをterminalで表示
- pip install python3-tk
## 2/19(Sun)
- cudnnのインストール
- [ここに行く](https://developer.nvidia.com/rdp/cudnn-download)
- local install for debを選ぶ
- ```dpkg -i cudnn~```
- ```sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/```
- ```sudo apt update```
- ```sudo apt install -y libcudnn8 libcudnn-dev libcudnn-samples```
- ControlNetについて
- xformersを入れるとバグる(一緒に入るtorch関連のパッケージのせい?)
- memoryが足りないのでconfig.pyのsave_memory的なところをTrueにする。
---
## 1/22(Sat)
- pipenvのインストールにめちゃくちゃみする
- ```sudo apt-get install pip3```
- ```pip3 install pipenv```
- ```pipenv --python 3.8```
- うまくいかないときは```ModuleNotFoundError: No module named 'virtualenv.seed.via_app_data```がでてくる
- こういうときは```pip3 uninstall pipenv```, ```pip3 uninstall virtualenv```, ```pip3 install virtualenv```する
- pipのPATHを通すことを忘れない
- ```export PATH="$PATH:/usr/bin/pip3:/home/naoki/.local/bin"```
## 1/19(Wed)
- awsパブリックIPv4アドレス:13.115.246.213
- awsプライベートIPv4アドレス:10.0.2.18
## 1/18(Tue)
- 結局素のubuntuの方が使いやすい(権限回りおかしい、動作もっさり、ein動かない)
- 土日で、使ってないSSDに新しくubuntuを入れなおす!(物理的にWindowsとLinux分ける, kubuntu!)
## 1/11(Tue)
- WSLの使い方メモ
- Ubuntuを管理者権限で実行
- config.xlaunchを実行
- Ubuntu terminal内で``` gnome-terminal & ```
- 最初は/mnt/cや~/.emacs.d/recentfのpermissionでエラーがでることがあった→```chmod 777 ```で解決
- cuda, pytorchも入って普通に使える(Chromeの方が使いにくい、CTRL+pとかしたいときにCTRLをもう一度押さなければならないから)
- gpu使うときはubuntu, 競プロ(?)するときはWindowsみたいな感じで使い分けた方がいいかも
## 12/30(Thu)
- shortkeysのscroll downにctrl+Nを割り当てることでなんとか動くようになった
- .emacs.dを置き換えたらうごくようになった
- M-x all-the-icons-install-fontsでアイコンの文字化け治る
## 11/7(Sun)
- nvidia driverをaptでいれるとsuspendできなくなるのでrunファイルからinstallするようにした
- aptでcudaをいれてもならない(495のdriver入れられる→suspendバグ)
- 競馬aiつくる(画像取得、deeplabv3でsegmentation)
## 10/7(Thu)
- シェル芸挑戦
- 眠くても何もやらずに寝ることだけは避ける
## 10/6(Wed)
- 少しだけ並列プログラミング読んだ
- あと部屋の模様替えした(デスクトップをちゃんとデスクの上に置くようにした)
## 9/27(Mon)
- 実習を通しての振り返り
## 9/24(Fri)
- mit_python:8章(testing and debugging)
- 基本情報の申込みと勉強始める
- 土日は基本家で勉強する
- 自転車の空気入れに行く
-
## 9/15
- Introduction to~の勉強
- ~~最終日に配るお菓子を買いに行く(土日)~~
- ibus-mozcに変えたらバグ治った(なぜか「の」が打てなかった)
- でもrebootしたらカーネルを変更しないとubuntuが起動しない(土日に解決試みる)