僕は、ロボットのコントローラとして、Raspberry Piを使っている。
僕は、PC98でマルチウィンドのGISシステムを開発した。当時はハードの性能を極限まで引き出す、そんな事をしなければならなかった。
CPUは、i80286
GISシステムは、ある意味CADなので、1000万ベクトルの検索を2秒以内で検索できる事を目標に開発した。
CADの図形DBの設計、図形の検索のアルゴリズムを考えて、最高に面白かった。
だから、PC98の200倍の性能のRaspberry Piを知った時、迷わずロボット創れると思った。根拠ないけど、、、
で、OSも、調べて迷わずArchlinux
今は、Raspberry Piのホームページからダウンロードできないけど、、、
Raspberry Piは、ハードとしての完成度が高いので、シンプルなOSが良いと思った。
ただ、ロボットの開発工数を考えるとツールがそろっているRaspbianを選択して、日本最大のロボット実証事業でRaspberry Piをロボットコントローラとして使った。
ただ、archlinuxもツールがそろって来て、そしてjessieもリリースされて、、、
やっぱりArchLinuxで良いのではないかと、、、
久しぶりにインストールしてロボットの開発環境を作ったけど、
wiringpi, lighttpd, そしてopencvも最新バージョンがpacmanでインストールできる。
これは、archlinuxのコミュニティーのおかげだけど、、、
raspbianで、opencv3の環境構築には数時間かかるけど、archlinuxはpacmanで一発。
いいか、悪いかは別にして、gccも
raspbian 4.9
archlinux 7.1
僕は、基本的に最小限のリソースで、マルチプラットフォームプログラミングを優先してこれまでシステム開発をしてきた、、、
それを考えると、ロボットコントローラは、archlinuxが良いのかもしれないと、、、
僕らは、陳腐なハードで、アルゴリズムを考えてシステムを作った。
今の、フレームワークのオンパレード、システム開発は楽しいのだろうか?
コンピュータのハードをダイレクトに生かせるOSや、開発手法が大事なのではないだろうか、、、
日本は、個別開発がITというIT土方世界、、、
でも、本当は、自分が考えたアルゴリズムで、世の中変える!
その手段が、IT
アルゴリズムを考えるときには、シンプルなハードとOSで考えた方が良い、、、
それが理解されていないのが、後進国になってしまった日本かも、、、
Peace!!
ロボット使ってトマト作れば楽だなぁ...やってみっか!
農業ロボット開発記録
日本中で100台以上動かしちゃった(^^)/
I'm developing robots that do tomato harvesting, settled planting ,,,,and many tasks.
The goal of production cost of robot is $2,000 per unit.
Because it is necessary a lot of robots, in order to innovate the farming.
I use Raspberry Pi as robot controller to develop low cost robots.
TOMATO FARM website -> CLICK!
2017年5月31日水曜日
2017年5月8日月曜日
野外で放置されて1年の Raspberry PiとLogicool C930e
野外に放置していたRaspberry Pi B、Logcool C930e 2台
USBコネクターも錆ています。
コネクターなどを掃除して、SDカード挿入して稼働確認。。。
なんと、動いたーーー
恐るべし、
というか、大事にします。
放置しっぱなしで、ごめんなさい。
最初の写真は、C930eで撮影したものです。
Peace!!
USBコネクターも錆ています。
コネクターなどを掃除して、SDカード挿入して稼働確認。。。
なんと、動いたーーー
恐るべし、
というか、大事にします。
放置しっぱなしで、ごめんなさい。
最初の写真は、C930eで撮影したものです。
Peace!!
![]() |
| 放置していたRaspberry Piに接続して、 fswebcamコマンドで撮影 |
![]() |
| 起動しました(^^) |
| 放置していたRaspberry PiとC930e |
| 腐食しているので掃除しました |
| 裏もホコリだらけ |
| Raspberry Piはこの中にいれていました このケースごと外に置きっぱなし |
2017年4月28日金曜日
Raspberry Pi 3が起動しなくなった(泣)
失敗です。
ただ、取り敢えず、起動はできるようになりましたが、、、
そもそも、しばらくupdate関連をしていなかったので、、、
sudo apt-get update
sudo apt-get upgrade
ところが、エラー、、、
あっ、、、
python -V
Python 3.4.2
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2.7 /usr/bin/python
Tensflowなど、AI関連の開発をしていたので、version 3を使っていた。
再度、
sudo apt-get update
sudo apt-upgrade
sudo rpi-update
OkOk (^^)
何を考えたのか?
sudo apt-get dist-upgrade
reboot後、、、
起動しない。
画面も、まっくろ、
基盤は、赤い電源ランプのみ、、、
jessieをインストールしただけのSDカードがあったので、
それを、Raspberry Pi3にセットしてboot
これは、OK!
ハードは大丈夫
SDカードをマックに差し込むと、bootディレクトリーがいつも通りにマウントされる。
ついでに、下記の手順でLinux部分をマウントして確認。
下記のGithubに行って、手順に従ってインストールして、マウント
https://github.com/gerard/ext4fuse
sudo dscl . append /Groups/operator GroupMembership phipo009
brew tap homebrew/fuse
brew install Caskroom/cask/osxfuse
brew install ext4fuse
sudo ext4fuse -o allow_other /dev/disk2s2 mnt
問題なく確認
(3)正常に動いているRaspberry Pi3の/bootをコピーして上書き
かなり手荒な事ですが、、、
上書き後、Raspberry Pi3に差し込んで起動。。。
あ〜ら、起動したじゃん!!!
でも、しかし、おかしい、、、
apt-get などをすると、、、
こんな感じのエラー、、、
gstreamerもインストールしましたが変わらず。
で、とにかく、データや、buildの大変な、openCV3.2.0 などをバックアップ中。。。
これだけでも、めっけモノ、、、
諦めなくてよかった。(^^)
Peaceじゃないけど、、、、
PEACEだぁ
追加
sudo apt-get -f install
audo apt-get autoremove
も、実行しましたが、、、
sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/1,299 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
dpkg: error processing package libgstreamer-plugins-bad1.0-0:armhf (--configure):
package is in a very bad inconsistent state; you should
reinstall it before attempting configuration
Errors were encountered while processing:
libgstreamer-plugins-bad1.0-0:armhf
E: Sub-process /usr/bin/dpkg returned an error code (1)
ついでに、、、
場当たりてきですが、、、
ただ、取り敢えず、起動はできるようになりましたが、、、
1.何をして、何が起こったのか?
そもそも、しばらくupdate関連をしていなかったので、、、sudo apt-get update
sudo apt-get upgrade
ところが、エラー、、、
あっ、、、
python -V
Python 3.4.2
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2.7 /usr/bin/python
Tensflowなど、AI関連の開発をしていたので、version 3を使っていた。
再度、
sudo apt-get update
sudo apt-upgrade
sudo rpi-update
OkOk (^^)
何を考えたのか?
sudo apt-get dist-upgrade
reboot後、、、
起動しない。
画面も、まっくろ、
基盤は、赤い電源ランプのみ、、、
2.対応
(1)ハードが壊れたのか?
jessieをインストールしただけのSDカードがあったので、それを、Raspberry Pi3にセットしてboot
これは、OK!
ハードは大丈夫
(2)SDカードがおかしくなった?
SDカードをマックに差し込むと、bootディレクトリーがいつも通りにマウントされる。ついでに、下記の手順でLinux部分をマウントして確認。
下記のGithubに行って、手順に従ってインストールして、マウント
https://github.com/gerard/ext4fuse
sudo dscl . append /Groups/operator GroupMembership phipo009
brew tap homebrew/fuse
brew install Caskroom/cask/osxfuse
brew install ext4fuse
sudo ext4fuse -o allow_other /dev/disk2s2 mnt
問題なく確認
(3)正常に動いているRaspberry Pi3の/bootをコピーして上書き
かなり手荒な事ですが、、、
上書き後、Raspberry Pi3に差し込んで起動。。。
あ〜ら、起動したじゃん!!!
でも、しかし、おかしい、、、
apt-get などをすると、、、
Selecting previously unselected package libgstreamer-plugins-base1.0-0:armhf.
Preparing to unpack .../libgstreamer-plugins-base1.0-0_1.4.4-2+deb8u1_armhf.deb ...
Unpacking libgstreamer-plugins-base1.0-0:armhf (1.4.4-2+deb8u1) ...
Selecting previously unselected package gstreamer1.0-plugins-base:armhf.
Preparing to unpack .../gstreamer1.0-plugins-base_1.4.4-2+deb8u1_armhf.deb ...
Unpacking gstreamer1.0-plugins-base:armhf (1.4.4-2+deb8u1) ...
Setting up libgstreamer1.0-0:armhf (1.4.4-2+deb8u1) ...
Setting up libgstreamer-plugins-base1.0-0:armhf (1.4.4-2+deb8u1) ...
dpkg: error processing package libgstreamer-plugins-bad1.0-0:armhf (--configure):
package is in a very bad inconsistent state; you should
reinstall it before attempting configuration
Setting up gstreamer1.0-plugins-base:armhf (1.4.4-2+deb8u1) ...
Processing triggers for libc-bin (2.19-18+deb8u7) ...
Errors were encountered while processing:
libgstreamer-plugins-bad1.0-0:armhf
E: Sub-process /usr/bin/dpkg returned an error code (1)
こんな感じのエラー、、、
gstreamerもインストールしましたが変わらず。
で、とにかく、データや、buildの大変な、openCV3.2.0 などをバックアップ中。。。
これだけでも、めっけモノ、、、
諦めなくてよかった。(^^)
Peaceじゃないけど、、、、
PEACEだぁ
追加
sudo apt-get -f install
audo apt-get autoremove
も、実行しましたが、、、
sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/1,299 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
dpkg: error processing package libgstreamer-plugins-bad1.0-0:armhf (--configure):
package is in a very bad inconsistent state; you should
reinstall it before attempting configuration
Errors were encountered while processing:
libgstreamer-plugins-bad1.0-0:armhf
E: Sub-process /usr/bin/dpkg returned an error code (1)
ついでに、、、
場当たりてきですが、、、
sudo apt-get install gstreamer0.10-alsa:armhf gstreamer0.10-plugins-base:armhf gstreamer1.0-alsa:armhf gstreamer1.0-libav:armhf gstreamer1.0-omx gstreamer1.0-plugins-bad:armhf gstreamer1.0-plugins-base:armhf gstreamer1.0-plugins-good:armhf gstreamer1.0-x:armhf
変わらず、、、
2017年4月1日土曜日
働き方改革 基本は 「信頼」
企業の「働き方改革」のサポートをしているけど、
調査して、はっきり出てきていたのは「信頼」の
高い組織は生産性が高いという事。相関係数は0.76
これは、4つの組織の信頼を調査した結果。
細目は省くけど、4分類16項目で調査した結果。
生産性は、黄色の組織が高く、青の組織が低い。
スコアー平均値の順に組織が並ぶ。
そして、知識創造ネットワークも「信頼」が高い組織が密であり
生産性が高い。
知識創造ネットワークと生産性との相関は、なんと0.83
組織の「信頼」はマネジメントの問題であり、
知識創造ネットワークの問題でもあり、
それらはマネジメント変革で組織の生産性も高められる。
しかし、今、生産性を高めいようと、
役員が旗を振っている組織には無理かも
何故なら、その人たちが、
古いマネジメントモデルで生きてきた人だから、、、
知識創造マネジメントと、信頼マネジメント
あなたはできますか?
Peace!!
調査して、はっきり出てきていたのは「信頼」の
高い組織は生産性が高いという事。相関係数は0.76
これは、4つの組織の信頼を調査した結果。
細目は省くけど、4分類16項目で調査した結果。
生産性は、黄色の組織が高く、青の組織が低い。
スコアー平均値の順に組織が並ぶ。
そして、知識創造ネットワークも「信頼」が高い組織が密であり
生産性が高い。
知識創造ネットワークと生産性との相関は、なんと0.83
![]() |
| 黄色の組織(信頼が高い) |
![]() |
| 青色の組織 |
組織の「信頼」はマネジメントの問題であり、
知識創造ネットワークの問題でもあり、
それらはマネジメント変革で組織の生産性も高められる。
しかし、今、生産性を高めいようと、
役員が旗を振っている組織には無理かも
何故なら、その人たちが、
古いマネジメントモデルで生きてきた人だから、、、
知識創造マネジメントと、信頼マネジメント
あなたはできますか?
Peace!!
2017年2月26日日曜日
New Kayak ANTIX
2016年の10月に発表されたJackson Kayak の ANTIX 入手
River Run 用のkayak
僕的には、大歩危、小歩危用です。
形的には、昔のピロエットSSを短くした感じ。
乗った印象は、、、
重心は、前勝負のカヤック
重心位置からの前後フラットボトムがサーフィン安定性を担保
独特のリーンがと、コックピット後ろのエッジと相まって重心移動でより機動性を高める。
強い流れのなかでキュッ、キュッって感じで操作やターンできる。前に重心移動すれば、高波も刺すように走破。
今日は、寒かったので、自重したけど、夏の増水期に、爆発的に楽しめそう
ある意味、自分にとっての理想のkayakです。
カラーも最高!出会えてよかった。
いつまでも、川とともに、、、(^^♪
Peace!!
River Run 用のkayak
僕的には、大歩危、小歩危用です。
形的には、昔のピロエットSSを短くした感じ。
乗った印象は、、、
重心は、前勝負のカヤック
重心位置からの前後フラットボトムがサーフィン安定性を担保
独特のリーンがと、コックピット後ろのエッジと相まって重心移動でより機動性を高める。
強い流れのなかでキュッ、キュッって感じで操作やターンできる。前に重心移動すれば、高波も刺すように走破。
今日は、寒かったので、自重したけど、夏の増水期に、爆発的に楽しめそう
ある意味、自分にとっての理想のkayakです。
カラーも最高!出会えてよかった。
いつまでも、川とともに、、、(^^♪
Peace!!
2017年2月12日日曜日
Installation of TesorFlow on windows10
基本メモなので、、、
Raspberry Pi、Mac ProにTensorFlowインストールので次は、Windows10
ただし、先にOpenCV3をビルドしてインストールした関係で、ひと手間必要
OpenCV3をビルドする時に、MinGW64をインするトールしている。
その為に、MinGWのpythonと、Anacondaのpythonが競合する
従って、Anacondaインストール後に、環境設定でpathを変更する。
2. 環境設定の変更
3. TensorFlowのインストール(仮想環境版)
4. 確認
この時、インストール先は、Cドライブの自身のホームディレクトリーです。
インストールは、インストールしたユーザ利用を選択してインストールします。
これにより、ユーザー環境変数として設定されますので、システム環境変数が優先します。
<注意点>
今回は、python(バージョン3.5)のAnacondaをインストールしました。
現時点(2017/2/10)では、Anaconda3-4.3.0.1が最新です。Pythonも3.6です。しかし、TensorFlowは3.6では動きません。その為にPython3.5のバージョンあるAnaconda2-4.2.0を使いました。また、下図のように、Python3.5.2へのupdateも画面にありますが、これをすると3.6にupdateされてエラーが発生して、再インストールが必要になります。
OpenCV3をビルドする為にMinGWをインストールしました。その時にpython2.7もインストールしています。パスを変えないと、このpython2.7が優先されます。両方ともに使えるようにするために変更します。
Windowsの環境変数の設定パネルを使って、ユーザー環境変数に設定してあるAnacondaの値を、システム環境変数に設定しなおします。ユーザー環境変数の値は、削除します。
私は、anacondという変数をつくり、それにAnacondaの設定値を記述し、その変数をPATHの先頭に挿入しました。
コマンドプロンプトを開いて、下記を入力して画面のイメージになれば設定変更は、成功です。
python -V
tensorflowとして環境構築します。
その後、作った仮想環境からTensorFlowをインストールします。
仮想環境のtensorflowのらんの右に三角形の矢印があり、それをクリックすると、選択画面があり"Open Terminal"を選択します。
選択後、terminal が開きますので、下記のコマンドを入力してインストールします。
pip install tensorflow
上記のようになれば、インストールは成功です。
次に、下記のコマンドを入力して、0.12.1などのようにバージョン表示されたら成功です。
python -c "import tensorflow as tf; print(tf.__version__)"
import tensorflow as tf
import numpy as np
# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3
# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but TensorFlow will
# figure that out for us.)
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b
# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# Before starting, initialize the variables. We will 'run' this first.
init = tf.global_variables_initializer()
# Launch the graph.
sess = tf.Session()
sess.run(init)
# Fit the line.
for step in range(201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(W), sess.run(b))
コマンドプロンプトでの実行して、下記の結果が表示されます。
python test.py
Peace !!
Raspberry Pi、Mac ProにTensorFlowインストールので次は、Windows10
ただし、先にOpenCV3をビルドしてインストールした関係で、ひと手間必要
課題と解決
仮想環境を使わない開発も行いたいので、下記のような課題が出てきます。OpenCV3をビルドする時に、MinGW64をインするトールしている。
その為に、MinGWのpythonと、Anacondaのpythonが競合する
従って、Anacondaインストール後に、環境設定でpathを変更する。
大まかな手順
1. Anacondaのインストール2. 環境設定の変更
3. TensorFlowのインストール(仮想環境版)
4. 確認
1. Anacondaのインストール
インストールは、Anacondaのサイトからダウンロードして、ダウンロードしたファイルを実行します。この時、インストール先は、Cドライブの自身のホームディレクトリーです。
インストールは、インストールしたユーザ利用を選択してインストールします。
これにより、ユーザー環境変数として設定されますので、システム環境変数が優先します。
<注意点>
今回は、python(バージョン3.5)のAnacondaをインストールしました。
現時点(2017/2/10)では、Anaconda3-4.3.0.1が最新です。Pythonも3.6です。しかし、TensorFlowは3.6では動きません。その為にPython3.5のバージョンあるAnaconda2-4.2.0を使いました。また、下図のように、Python3.5.2へのupdateも画面にありますが、これをすると3.6にupdateされてエラーが発生して、再インストールが必要になります。
2. 環境設定の変更
ちなみに、Anadacondaの仮想環境だけで使う場合には、環境設定の変更は必要ないです。OpenCV3をビルドする為にMinGWをインストールしました。その時にpython2.7もインストールしています。パスを変えないと、このpython2.7が優先されます。両方ともに使えるようにするために変更します。
Windowsの環境変数の設定パネルを使って、ユーザー環境変数に設定してあるAnacondaの値を、システム環境変数に設定しなおします。ユーザー環境変数の値は、削除します。
私は、anacondという変数をつくり、それにAnacondaの設定値を記述し、その変数をPATHの先頭に挿入しました。
![]() |
| システム環境変数にanacondaの変数を作成 |
![]() | |
|
![]() |
| 設定後 |
python -V
3.1 TensorFlowのインストール
最初に、Anaconda Navigatorを使って、仮想環境の構築をします。tensorflowとして環境構築します。
その後、作った仮想環境からTensorFlowをインストールします。
仮想環境のtensorflowのらんの右に三角形の矢印があり、それをクリックすると、選択画面があり"Open Terminal"を選択します。
選択後、terminal が開きますので、下記のコマンドを入力してインストールします。
pip install tensorflow
上記のようになれば、インストールは成功です。
python -c "import tensorflow as tf; print(tf.__version__)"
4. 確認
確認はTensorFlowのサイトにある下記のプログラム(test.py)を実行させます。import tensorflow as tf
import numpy as np
# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3
# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but TensorFlow will
# figure that out for us.)
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b
# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# Before starting, initialize the variables. We will 'run' this first.
init = tf.global_variables_initializer()
# Launch the graph.
sess = tf.Session()
sess.run(init)
# Fit the line.
for step in range(201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(W), sess.run(b))
コマンドプロンプトでの実行して、下記の結果が表示されます。
python test.py
Peace !!
2017年2月9日木曜日
Installation of TensorFlow on Mac Pro
Anavondaは既にインストールしてあるので、超簡単(^^)
$ conda -V
$ conda create -n tf python=3.5
$ conda install -c conda-forge tensorflow
Fetching package metadata ...........
Solving package specifications: .
Package plan for installation in environment /Users/phipo009/anaconda:
The following NEW packages will be INSTALLED:
mock: 2.0.0-py35_0 conda-forge
pbr: 1.10.0-py35_0 conda-forge
protobuf: 3.1.0-py35_0 conda-forge
tensorflow: 0.12.1-py35_1 conda-forge
The following packages will be UPDATED:
anaconda: 4.2.0-np111py35_0 --> custom-py35_0
The following packages will be SUPERCEDED by a higher-priority channel:
conda: 4.3.9-py35_0 --> 4.2.13-py35_0 conda-forge
conda-env: 2.6.0-0 --> 2.6.0-0 conda-forge
Proceed ([y]/n)? y
conda-env-2.6. 100% |################################| Time: 0:00:00 945.91 kB/s
anaconda-custo 100% |################################| Time: 0:00:00 2.69 MB/s
conda-4.2.13-p 100% |################################| Time: 0:00:01 209.70 kB/s
protobuf-3.1.0 100% |################################| Time: 0:00:02 2.89 MB/s
pbr-1.10.0-py3 100% |################################| Time: 0:00:00 7.52 MB/s
mock-2.0.0-py3 100% |################################| Time: 0:00:00 14.13 MB/s
tensorflow-0.1 100% |################################| Time: 0:00:10 3.36 MB/s
$ pip install keras
$ conda -V
$ conda create -n tf python=3.5
$ conda install -c conda-forge tensorflow
Fetching package metadata ...........
Solving package specifications: .
Package plan for installation in environment /Users/phipo009/anaconda:
The following NEW packages will be INSTALLED:
mock: 2.0.0-py35_0 conda-forge
pbr: 1.10.0-py35_0 conda-forge
protobuf: 3.1.0-py35_0 conda-forge
tensorflow: 0.12.1-py35_1 conda-forge
The following packages will be UPDATED:
anaconda: 4.2.0-np111py35_0 --> custom-py35_0
The following packages will be SUPERCEDED by a higher-priority channel:
conda: 4.3.9-py35_0 --> 4.2.13-py35_0 conda-forge
conda-env: 2.6.0-0 --> 2.6.0-0 conda-forge
Proceed ([y]/n)? y
conda-env-2.6. 100% |################################| Time: 0:00:00 945.91 kB/s
anaconda-custo 100% |################################| Time: 0:00:00 2.69 MB/s
conda-4.2.13-p 100% |################################| Time: 0:00:01 209.70 kB/s
protobuf-3.1.0 100% |################################| Time: 0:00:02 2.89 MB/s
pbr-1.10.0-py3 100% |################################| Time: 0:00:00 7.52 MB/s
mock-2.0.0-py3 100% |################################| Time: 0:00:00 14.13 MB/s
tensorflow-0.1 100% |################################| Time: 0:00:10 3.36 MB/s
$ pip install keras
Peace!!
登録:
投稿 (Atom)


















