grbl1.1+Arduino CNCシールドV3.5+bCNCを使用中。
BluetoothモジュールおよびbCNCのPendant機能でスマホからもワイヤレス操作可能。
その他、電子工作・プログラミング、機械学習などもやっています。
MacとUbuntuを使用。

CNCマシン全般について:
国内レーザー加工機と中国製レーザー加工機の比較
中国製レーザーダイオードについて
CNCミリングマシンとCNCルーターマシンいろいろ
その他:
利用例や付加機能など:
CNCルーター関係:



*CNCマシンの制作記録は2016/04/10〜の投稿に書いてあります。


2018年4月9日月曜日

Tensorflow 1.7へバージョンアップ

Tensorflowは少し前に1.6へバージョンアップしていたにもかかわらず、pytorchを使っていたため1.5のままでした。しかし1.6のあとすぐに1.7へバージョンアップしており、eager executionが改良された模様。



TensorflowはさすがGoogleだけあって開発スピードがはやいのか、内容に追いついていくのが大変。
Tensorflowといえば、

tf.placeholder()
tf.Variable()
tf.Session()

でコーディングしていくイメージでしたが、より使いやすくするために

tflearn : easy to learn, high level API
slim : a lightweight library for defining, training and evaluating models
estimator : a high-level TensorFlow API that simplifies ML programming
keras : a higher API wrapper
eager : define by run
lite : mobile, RPi

などが次々と導入されたため、どれがいいのかわかりにくくなってきたという感じ。
kerasが使えるようになってからは、シンプルなコーディングが可能になったけれども、pytorchのようなdefine by runタイプが便利になってきたこともあって、Tensorflowもeagerを導入してdefine by runも普通に使えるようになった感じ。

なんでもありとなってきたTensorflowという感じで、やはり機械学習フレームワークとしてはTensorflowがなんだかんだいって便利なのかもしれません。
ということで、使い勝手が改良されたTensorflowも再度使おうと、1.5から一気に1.7へバージョンアップしてみました。

GPUを使用しているので、

pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.7.0-cp35-cp35m-linux_x86_64.whl

のpipコマンドでAnaconda仮想環境内にインストールしてあったtensorflow-gpu-1.5.0をアップグレード。
eager executionが便利そうなので、少し慣れておこうかと。

最近は、ベイズ推定などの確率的プログラミングに興味があって、

GPy
Pyro
Edward

などを勉強していまずがTensorflowにも、

Tensorflow Probability

というライブラリができたようで、Tensorflowだけであらゆることが可能となってきた感じ。



2018年2月26日月曜日

Anaconda NavigatorのVSCODE

Anaconda NavigatorにVSCODEが追加されたようなのでアップデートしてみました。
環境は、Ubuntu16.10です。


アップデートしてみると、たしかにVSCODE(右下)に追加されています。
選択した仮想環境内にあるVSCODEの「install」をクリックすれば、すぐにインストールされるようです。もうすでにPythonの環境に適応した状態になっているようなので、余計な設定などしなくてもいいようです。
もともとAnaconda Navigatorにはspyderというエディタも入っているのですが、おそらくVSCODEのほうが使いやすいかと。

しかし、普段はAtomエディタを使っているので(以前いろいろ設定したので)、VSCODEはたぶん使用しないとは思いますが、徐々に便利になっていることは確かです。やはりPythonを使うならばAnacondaを導入するのがおすすめです。

追記(2021年):
その後、VSCODEの機能拡張も進化したのでかなり便利になり、VSCODE内でJupyter Notebookも使えるようになりました。唯一問題なのは、Jupyter Notebookでmatplotlibを使った際にインタラクティブ表示(バックエンドを%matplotlib notebookにすることができない)が非対応ということでしょうか。そのため、Jupyter Notebookを使う際には、いまだにブラウザを使用しています。ちなみにJupyterLabでもインタラクティブ表示ができない。

2018年2月19日月曜日

小型直動サーボ:GS1502とミニアクチュエータ


AliExpress.com Product - 2pcs/lot 1.5 g 1.5g servo micro digital servo loading two linear servo1107円(2個/送料無料)
ラジコン飛行機用のサーボらしいけれども直動というのがめずらしい。ストロークは以下の写真をみると10mm程度でしょうか。


以前、CD-ROMヘッド用のミニアクチュエータをAliExpressで見つけましたが(以下)、こちらはステッピングモーターを使っているので脱調しなければ精度・分解能はありそう。
AliExpress.com Product - circle 2 Phase 4 wire Mini screw rod stepper motor for camera Linear motor sliding table lead screw stepper motor
それぞれ、285円/296円/307円(送料無料)、比較的安い。
ストロークは、19mm/29mm/40mmのようです。

ミニCNCやミニロボットアームなど作れそうです。
いちおう気になったのでメモ。

2018年1月31日水曜日

Bayesian Deep Learningの図解

事前確率や事後確率、そして確率分布を用いるBayesian Deep Learningは文章で説明されると理解しにくく、以前Variational Autoencoderを学んだとき(確率分布が登場してくる)もイメージとして把握するのが困難でした。一行ずつコーディングしていくことで、なんとかその仕組み/手順はわかったものの、GANなどのように構造が複雑になっていくとイメージが追いつかず、また分かりにくくなっていました。
そこで、以下の動画を見たら非常に分かりやすかったので、参考としてメモ。


ここでは確率分布を使わない通常の方法と確率分布を使う方法とを図で比較しながら説明してくれます。動画途中にでてくるスライド(イメージ)がわかりやすかったです。

線型回帰の場合、

X*w+b=Y

X:データ
w:ウェイト
b:バイアス
Y:予測値
 通常(非ベイズ)は、上図のそれぞれのマスに固有の数値が入りますが、

ベイズ推定を用いると(上図)、Xはデータなのでそれぞれ固有の数値ですが、w、bには正規分布などの確率分布が入り、その結果出力されるYも確率分布となります。
単に、固有の値であったwとbを正規分布に置き換えればいいというわけです。


Logistic Regressionの場合であっても、

ベイジアンでは以下のようになるだけ。
たしかに分かりやすい図解となっています。
さらに、多層のDeep Learningであったとしても、


という仕組みが、ベイジアンでは以下のようになるだけ。



Deep Learningを勉強していくと、ただですら複雑なマトリクス計算や数多くの層を計算しなければいけないので、コーディングする手順や仕組みを理解するにも一苦労です。さらには、確率分布をつかった式も途中に出てくるので、なおさら仕組みが難解になりがちですが、このようなイメージをつかむことができると理解しやすくなります。

以下の本も読んでベイズ推定を勉強していますが、文章や式だけでの表現だと頭の中にイメージするのが徐々に困難になってきて、理解するにはどうしても時間がかかっていました。やはり、イメージしやすい図解があると頭の中にも入ってきやすいという感じです。


また、Udemyには「ベイズ推定とグラフィカルモデル」という無料のコースもあります。動画内に登場する図解がわかりやすいかもしれません。覚えなければいけない式などかなりありますが、初心者にとっては難しい専門書で勉強するよりはいいかもしれません。
Youtubeでも動画は公開されており、日本語なので試しに見てみてもいいかもしれません。

2018年1月28日日曜日

ひさびさにモナコインをソロマイニングしてみました

しばらく仮想通貨マイニングはしていませんでしたが、モナコインのチャートを見ると、去年末には一時期2000円を超えていたにもかかわらず、その後仮想通貨全体の暴落もあり、一気に半値以下まで下がっていました。もしかすると、Difficultyが下がっているのかもしれないと思って、試しにソロマイニングをやってみました(GTX1060のゲーミングノートパソコン使用)。

確か去年末はDifficultyが55000程度だったのですが、今は少し下がっています。元々多少上下するのですが、低くなっているようではあるので、パソコンを使っていない外出中や夜中などにソロでマイニングしてみようかと。

やはりソロマイニングはなかなかヒットしませんが、
一晩おいて次の日の午前中にひとつ採掘成功(ソロでは初めて)。一気に25モナコインをゲットできました。採掘されるとすぐに以下のウォレットに入金されました。
1モナコイン=700円だとすると、一回の採掘で17500円稼いだことになります。かなりすごい。もしレートが去年末の2000円であれば50000円でしたが、今となってはしかたありません。また価格が上昇するのを待ってしばらくキープしておこうと思います。
調子にのってその後数日採掘を継続してみましたが、やはりGTX1060程度ではなかなかヒットしません。これは偶然なのかもしれませんが、宝くじよりは確率高いような気もします。

中国や韓国の仮想通貨規制問題などで価格はどんどん下がっており、しかも先日のコインチェックのハッキング事件でもさらに下げてしまい、仮想通貨全体的に価格はやや低迷しています。どうやら、毎年1月そのものが価格を下げる時期らしく(年末に利確する人が多い)、また2月から年末に向けて少しずつ上昇していくことに期待するしかありません。仮想通貨における懸念や急暴落が問題視されていますが、仮想通貨に乗り出している企業や銀行もどんどん増えており、まだまだ市場は拡大していると思うので価格も上昇していくと思います。

ちなみに仮想通貨マイニングとAI用コンピュータの需要のせいかGPU自体も値上がっているようです。

人気の投稿