今はpyenv + pipenv!
virtualenvとかcondaとか使わなくなったらしいよ。。。
ちょっと使ってみましたが、たしかにpipenvわかりやすいです。どこでもなんでもpipenv install でディレクトリごとの仮想環境がつくれて、pipenv shellで仮想環境立ち上げて、pipenv installで仮想環境内でモジュール管理しながらもじゅーつ追加できる。
環境はWindows10 WSL2 + ubuntu18です
pyenvインストール
いろいろなところに書いてある通りにインストールしますが、そのまえにlibffiが必要です。これがないとpipenvがエラーはいてうごきません。
sudo apt install libffi-dev
pyenvをインストールして
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
以下をrcファイルに書き足します
export PATH="/home/<user>/.pyenv/bin:$PATH"
eval "$(pyenv init - zsh --no-rehash)"
じゃあ、pyenvで何かpythonインタプリタをインストールします。
pyenv install 3.8.5
pyenv global 3.8.5
pipenvインストール
インストールはpipで終わりです
pip install pipenv
試しにディレクトリほって環境を作ってみます。
mkdir hoge
cd hoge
pipenv install --python 3.8.1 <-- pyenvとは違うインタプリタもいけてしまう
pipenv shell <-- 仮想環境を起動
(hoge) pipenv install boto3 <== boto3モジュールを3.8.1にインストール
これで、hogeディレクトリ内のpython仮想環境にはboto3入りの3.8.1ができますが、それ以外のディレクトリや、pipenvを起動していない状態のhogeディレクトリではboto3なしの3.8.5がインタプリタになります。
参考
【Ubuntu 18.04】pyenv+pipenvでPython環境構築 - Qiita
Pyenv と Pipenv で Python 環境を構築する - Qiita
pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。 - Qiita
Zoteroの使い方(我流、逐次更新)
Mendeley+DropBoxで運用していたんですが、PC移行のときから調子が悪くなったのでずっと乗り換えたいと思っていました。
で、Twitterで相談したら、"Zoteroいいよ"ということなので、早速導入始めています。
自分の導入過程のメモ書きも兼ねているので、逐次更新です
Zotero?
Opensourceの文献管理ソフトウェア?ぽい
導入にあたって、以下の記事を参照しています~
目標要件
クラウドストレージにPDF本体を大量に保存
zoteroのサーバには文献DB情報のみを格納させる
クラウドストレージのパスを適切に参照させることで、将来的にPCを移行しても苦労しないですむようにする
当然Overleafとかようのbibは必要
インストール
まずは何も考えずに公式サイトからstand aloneのバイナリをダウンロードして展開。何も問題なくインストールされる。あ、いきなり日本語でした。素晴らしい
Zotfile
Zotfileってのは上記3リンクいずれもおすすめしているので導入する。
指摘したディレクトリ構造を維持するように、文献アイテムに添付したPDFをrenameしてmvしてmkdirしてくれる。
https://ohdachi.github.io/ohdachi_lab/researches/2018/02/02/zotero_zotfile.html
にあったように、zotfile preferenceの"Use subfolder defined by"に/%w/%yと書いた。これで雑誌-発行年というディレクトリになるはず・・・ならなかった。あー、これマックだ。Windowsの場合は\%w\%yと書く。
嫌な感じのディレクトリでも、設定を変えて再度renameすると勝手にPDFを移動してくれる。つまり、この機能を使うと、取得したPDFを適切なディレクトリ(私の場合はGoogle drive)に移動して名前を変える手間がなくなる、ということかな?
- 書誌情報をzoteroに登録
- PDFを落としてきて、添付ファイルとしてリンク。落とす場所はどこでも良い。
- すかさず右クリックでzotfile rename
下記のchrome extensionを使うともっと楽になるのかも?
あーちょっとがっかりポイント
文献管理とノート整理に Zotero が最適だった - 博士以前
にあるように、論文/Projectごとにサブフォルダ(コレクション、と呼ばれる)を切って、それぞれにPDFを登録するようにしたい。この場合、zotfileのsubfolder設定は\%cとなる
ただ、一つの論文が複数のProjectに入る可能性が十分あるので、一つの文献アイテムと対応するリンクが複数のコレクションに入ってほしいんだけど、それは無理っぽいな?
一つのPDFは一つのサブフォルダにしか置けない。
ただ、文献アイテムを複数のサブフォルダに登録することは問題ないようだ。
zoteroが正しく機能していれば、PDFのありか自体は気にしない(直接探しに行かない)のが正しい運用っぽい。
ふむー。そうすると/%cとかするよりは年数とかで分けたほうがいいような
ガッカリポイント2
あと、名前決めるときにjournal名はみてくれるけどproceedingはみてくれないのか?設定でなんとかできないのかなーICMLとか出てくれないと困る。
とりあえず、文献アイテム登録時にpublisherにICMLとかの会議略称書いてしまえば運用できるけど、それって嘘bibtexの元だなぁ・・・
ちゃんと設定できたよ!
zotfile preferences --> renameing rulesにPDFのファイル名自体のrename規則を指定するところがある。
{%a_}{%y_}{%j_}{%t}
とすると、第一著者_発行年_書誌名(proceedingsもOK)_タイトル.pdf
としてくれる。最高か!
ただ、proceedingsの会議略称名はつけられないぽい。
あと、ディレクトリ名には会議名がでてこないのかな・・・昨夜出てきた気がするんだけど、なんだったんだ・・
ここが解決出来れ場完璧なので、できれば自分でrename jsonをいじりたいんだけど、いじり方が分からない(JSONファイルにアクセスできない)
ディレクトリに振り分ける際に、%jを使ったら、会議名しっかりそろえる機運になるかもしれないな?
Chrome addon
Zoteroをインストールしたら、勝手にaddonのインストールをお勧めされたのでインストールした。
早速つかってみました。
試しにICLRのOpenReviewで、アドオンボタンをポチっとしてみる。
おお。。。リンクされてるPDFまで一緒に保存されたぞ
このあとrenameすれば保存用google driveに整理されて保存されるっつう寸法!
すごい・・・
Better Bbitext
文献管理ソフト Zotero ~ 設定編~ - humosy’s blog
これは必要そうなので導入
ToDo
chrome addon つかう
Overleafとの連携; https://libanswers.caltech.edu/faq/204206
今更だけど、chaier trainer + optunaで探索枝かりするとき
こんなのが出た直後でなんですが、OPTUNAは今後も開発継続されます!
で、まあchainerはわかりやすいしdocもかなり充実してるので、メンテナンスモードはいってもしばらくは使われると思います。
そこで、chainer + optuna prunerの使い方。
生コードの実例だと、trainerじゃなくてちょくせつepoch回して、pruningの基準となる量をtrialに報告してるけど、まあtrainer使うよね・・・
そのときどーすんの?とおもったけど、
Integration moduleを使えばよいっぽい。
ばっどのうはう:np array(とくに三次元以上の多次元配列)のリスト、これをnp.arrayしても通らないときは、swapaxesしてみると通ることがある
完全にバッドノウハウだけど現象としてはわかっている。
n=1,2,3,...N個の多次元np arrayがリストになっていて、
n番目の多次元配列の次元がD x l_n x l_nである。
つまりどのn番目のnp.arrayも最初の次元のサイズはDで一定で、二次元目三次元目がn依存のサイズ。
このlistをnp.arrayやnp.anyarrayなどでまるっとarray化しようとするとコケる。
原因は、第一次元がDでそろっていて、へんなスライスの類推がはたらくため。
対策は、swapaxesで一次元目と他の次元を入れ換える。これでいける。
array化したあと、あらためてswapaxesで次元の順番を戻せばよろしい。
docker pushがTimeoutで死ぬとき!
dockerのsettig-->Proxyで、DNSをautomaticからfixed 8.8.8.8にすると治ることがあるよ
Dockerfileの中でファイルやディレクトリ作るとownerがroot:rootになっちゃうのが嫌な時・・・
COPYコマンド(ADDよりはCOPYのほうがいいらしい)でchownオプションがつけられるよ!
COPY --chown=[user name]:[user name] from_dir_path_in_local to_dir_path_in_container