最近、腰が痛い。。。
在宅勤務で座り過ぎているせいだ。
ふと思い返すと、
高校生の時、「腰が痛い」という同級生を憧れの眼差しで見ていた記憶がある。
腰痛い = 大人って認識だったのかな。
今になってわかる、腰は痛くない方がいい。
最近、腰が痛い。。。
在宅勤務で座り過ぎているせいだ。
ふと思い返すと、
高校生の時、「腰が痛い」という同級生を憧れの眼差しで見ていた記憶がある。
腰痛い = 大人って認識だったのかな。
今になってわかる、腰は痛くない方がいい。
コロナ禍で在宅勤務が主戦場になっております。
在宅あるあるで、豆から挽いて美味しいコーヒー飲みたい。。みんな同じこと思ってるはず。
Google先生で調べると、豆を挽くミルには手動と電動があるらしい。
それぞれのざっくりとした特徴は下記。
諭吉を出してまで、電動ミルを買いたくない。(奥様に怒られるとかではなく)
台所に電動ミルを鎮座させる余裕はない。(奥様に怒られるとかではなく)
「電動ミル、買っちゃった♪」と言える勇気もなく、
ネットで手動ミルを見ていると、
・取っ手の部分を取り外しできるものがある!!
・しかも六角レンチっぽい見覚えのある六角!!
大抵なにかしらの規格準拠のはずなんで、適合する六角ソケットがあるはず!!
・手持ちの電動ドライバでいける!!
手動ミルをAmazonで買って、
電動ドライバ用の六角ソケットを近くのオリンピックで散歩がてら買って、
そららをがっちゃんこさせると。。。
ええ、できました。
豆から挽くコーヒーうめぇ〜〜〜
ただし、奥様にはまだ言っていないのは、しょないでシクヨロです。
買ったコーヒーミルは⬇。 まだ5回程度した豆挽いてないけど、今のとこ問題なし。
六角ソケットは、7mmのやつ⬇
わかりにくいけど、こんな感じで電動ドライバにぶっ刺して使ってます。
今週目に留まったMedium↓記事、生産性向上のメール術を読んで。
下記はやっているけど、他に何か有益なのがないか知りたいというモチベーション。
自分ルール
とは言ってもケース・バイ・ケースで、
相手によっては速攻で返信を要求するような輩もいるので、めんどくさいこともある。。。
ポイント:
メールを開きっぱで、ポイントだけ書いておくか。。。
自分に合うかどうか、さっそく明日からやってみよう。
下記のように、'r' もしくは 'R' をプレフィックスをつけている文字列のこと。
raw stringにすることにより、エスケープシーケンスが不要になる。
例でみるとわかりやすい。
>>> s = "xavi \n iniesta" >>> sr = r"xavi \n iniesta" # <---raw string!!! >>> >>> s 'xavi \n iniesta' >>> >>> sr 'xavi \\n iniesta' # <---raw stringの場合、自動で\をつけてくれている。へぇ。 >>> >>> print(f'{s}') xavi iniesta >>> >>> print(f'{sr}') xavi \n iniesta # <---エスケープシーケンスにより、"\n"がただの文字列と化している。
シャビとイニエスタのコンビが、指導者としてバルサで実現することがあるのでしょうか。
その時は、再びバルサ黄金期を作ってほしいものです。
ある人とPowerPoint資料をやり取りする機会があった。
ただし、こっちはUbuntu(18.04)、あっちはWindows。
Ubuntu標準のLibreOfficeという標準ソフトで編集することは可能だが、 図やレイアウトがほぼおかしくなる。
このままわかりあうことはできないのか。
私の師であるGoogle先生に何かよい代替ソフトないか聞いたところ、
WPS Office 2019といういい感じのものがあると伺った。
果たして、その結果はいかに。。。
WPS Office for Linuxのページで概要を読んでみることにしよう。
”Fully compatible with Microsoft Office”と記載あり。頼もしい。
ただ、PowerPointのとこに"Fully compatible with Microsoft PowerPoint (.PPT)"と記載があり、
PPTXは互換性ないんだね、と思ったり。でもFull compatibleでないだけで、Almost compatibleかもしれない。
そのあたりは実際に触ってみてというところか。
さて、下記インストール方法である。
$ sudo dpkg -i wps-office_11.1.0.10161.XA_amd64.deb
次に、起動方法だ。
下記でどちらでも起動することが可能である。
$ wps
と入力するこの方法だと言語仕様が英語になります。
"Ubuntuソフトウェア"アプリで”WPS”と検索すると、
"”WPS Office 2019 - Multi-Language”と表記されたソフトが検索結果に表示されるので、
こちらでインストールすると、もしかしたら日本語にできるかもしれない。
ただ英語でやっているオレかっこいい!
スタバでマック広げてます!
そんな感じで英語設定で共に歩みましょう。
今後必要になりそうなので、やっと調べ始めました。
公式ドキュメントを読んでも、まぁ頭に入らないので、pytorchを使用しているプログラムから学んで行くことにしよう。
と思っていましたが、結論いうと、
中途半端な知識ではほとんどわからない、ということがわかりました。。
これ以降はだたの駄文、汚物じゃ!!
今年かけてpytorchならびにDeeplearningについて学習し、
年末にこの汚物を修正し、神へと昇華させる所存でございます。
Deep learning で一番ホットな企業であるNVIDIAのサンプルをお勉強用としてます。
そのNVIDIAのデバイスを使用した、JetBotというものがあり、それ用に提供されているCollision Avoidanceのデモプログラムを見ています。
コードは、↓Githubから取ってきてます。
[1] import torch [2] import torchvision
[1][2] importしている"torch" と "torchvision"は何者ぞ?
公式ドキュメントによると、
torchvisionの"vision"は、computer visionのvisionか、なるほど。
"torch"単品のほうは、computer visionに限らず、汎用的なものが詰まっているのか、なるほど。
[3] model = torchvision.models.alexnet(pretrained=False) [4] model.classifier[6] = torch.nn.Linear(model.classifier[6].in_features, 2)
[3] torchvisionパッケージで、かの有名なalexnetを召喚している。(torchvisionドキュメント箇所)
[4] よくわからん。。一つずつみていこうか。
[5] model.load_state_dict(torch.load('best_model.pth'))
[5] モデルの重みデータを読み込んでいる
[6] device = torch.device('cuda')
[7] model = model.to(device)
[6] torch.device: cuda使います。と宣言。
[7] 調べてないけど、modelをdevice(cuda,,というかGPU?)へロードします宣言。
[8]
import torch.nn.functional as F
import time
def update(change):
global robot
x = change['new'] # <--- camera input
x = preprocess(x) # <--- cmera input preprocessed
y = model(x) # <--- Alextnetにかけた結果がy
y = F.softmax(y, dim=1) # <--- yをsoftmax関数にかけて、0〜100%の値に変換する。
prob_blocked = float(y.flatten()[0]) #<---flatten後の最初の要素が、blocked状態かどうかを示すものらしい。
if prob_blocked < 0.5: <--- 50%より小さいと直進
robot.forward(speed_slider.value)
else: <--- 50%以上だと、Blockedとみなし、左へ曲がる。
robot.left(speed_slider.value)
time.sleep(0.001)
update({'new': camera.value}) # we call the function once to initialize"
[8] プログラム中にコメントとして記載。