#とりあえずpythonのモジュールを作ってみたかった
Python初心者です。
###今回は自作モジュールを作ってみたい!
それだけの気持ちでやりました。
というわけで今回製作したのは、
#####機械学習の学習が終わったらそのロス等のログをメールで送ってくれるモジュール
です。特にfine tuneなどやってるときはロスがきちんと減っているかをすぐ知りたかったり、メールがくることで学習が終わっていることをメールで知ることができます。(2回言った)
#1 gitから取ってきてメールアドレスを設定する
gitからcloneします。
git clone git@github.com:daikiclimate/modules.git
次にメールアドレスだけ先に登録しておくと楽です。
vi Datorch/mailog.py
そして以下の部分を編集します。
#settings
to_email = "aaaa@gmail.com"
from_email = "bbbb@gmail.com"
gmail_account = "aaaa@gmail.com"
gmail_password = "cccc"
"aaaa@gmail.com"は送信側のメールアドレス
"bbbb@gmail.com"は受信側のメールアドレス
"cccc"はaaaaのパスワードです。
(経験上)gmailでログ送信・受信専用のアカウントを作り、送信も受信も同じアカウントでやってしまうのが簡単でいいと思います。
#####そして送信にしようするアカウントで「安全性の低いアプリのアクセス」を許可する必要があります。
以下のURLから変更してください。(セキュリティ含め新アカウント推奨)
https://myaccount.google.com/security
以上で準備は終了です。
次に以上のものをpipのライブラリに登録します。
pipでインストールしたみたいに使うためには、こうするといいようです。
python setup.py develop
#2 使い方
mail送信用のモジュールをインポートします
import Datorch.mailog as mailog
引数1がメールタイトル、引数2が本文のあるテキストファイルの名前です。
今回で言えば、"log.txt"というテキストファイルにログを記述してあります。
mailog.sendmail("Sending Log!","log.txt")
これでメールが送信できます。
簡単のためにテキストを作成するLogfuncクラスを作成してあります。
from Datorch.printlog import Logfunc
Logf = Logfunc()
for epoch in range(10):
...
...
Logf.update(epoch, train_loss, test_loss)
Logf.print_log()
Logf.write_log()
updateはクラス変数に数値を更新する作業になります。引数はとりあえず以下のようになってます。
update(self, epoch, train_loss, test_loss = None, correct = None, total = None )
print_log()は標準出力でlossなどをプリントします。
write_log()は"log.txt"という形でロスを記録する(追記する)テキストファイルを更新います。
#自分では使ってます。
いいんです。僕は「pythonのモジュール作ったことあります」って言いたかっただけなんです
#正直な感想
メールアドレスの設定とかあんまりクールではないですが、時間があれば更新していきたいと思います。