【初心者向け】mysqlclientのインストールで詰まったときの補足

コマンドラインでmysqlを使いたい!と思ったら、思わぬ罠がありましたので紹介します。

*僕の場合はpythonで使いたい!というものでしたが、他でも使えることを確認しています。

まずコマンドラインで下記コマンドを入力。
コレが通れば成功です。

pip install mysqlclient

(例:PythonでMySQLに接続する方法【初心者向け】)

これでできるよ!!

と言いたいところでしたが・・・、できないんだな、これが。

思わぬエラー

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com
/visual-cpp-build-tools

うむ・・・。
調べても全然記事がないぞ。

というより、C++でのエラーがほぼ記事がない。

私は探し当てました。
mysqlclientをインストールできないときの対処法

ちなみにコレのStep4にてdownloadに移動した後、

dir

で、ダウンロードしたファイル名をコピペして、下記<package_name>に入れてください。

pip install <package_name>

を実行する。

これで終わり。・・・のはずですが、引っかかった方は教えてください。

TensorFlow RNNで詰まるの巻

DeeplearningのフレームワークTensorFlowの学習まで漕ぎ着けました。
CNN(画像認識用と言っても過言ではない)はゼロから始めるディープラーニングでだいたいOK。
何度か読み返してわりとなんとか・・・。

実装面がちょっと困る。

なぜなら、数列の扱いに慣れていないからだろう。
行列の変形や逆行列の導出にちょっと詰まるくらいだが、スラスラ理解できるようにならねば・・・。

RNN(自然言語処理等の時系列把握)が詰まった。

なぜなら「突然の数式全開」

とりあえずまずは写経して、もう1度読む時に日本語訳しよう。

プログラミングはまず書くことが大事だと思います。割とマジで。

写経前「?????」
↓
写経後「?????動いた!面白いけど謎」
↓
読解中「あ!これやったやつやん~こういう理解でいいんか」
↓
読解後「だいたいわかる!!」

出来ないって思ったら負けなんですよね。自分に負ける。それがだいたいの失敗理由だ。

TensorFlowまで到達

ちょいちょい数式に詰まりながらも、DeeplearningのフレームワークTensorFlowの学習まで漕ぎ着けました。

一番困ったのは「説明無しで数式使うよ!」

マジやめてください・・・まあ勉強するけどね。

本はマスメディアなんでしゃーないんですが。
自動でカスタマイズできないし。

・・・自動で読んでる人のレベルに合わせる、そういう教材あったら面白いな?
簡単なテスト→表示→理解したかの各項目チェック→学習してレベルを計算していく。
(カメラで目線を追って、ワカラナイ時とわかった時の行動分析から表示内容を決定し、自動で書き換えていくみたいなね?)
(ある程度負荷をかけつつ、難しくなりすぎないようにする。簡単だと退屈だ。)

pythonはコード書くのが楽です!
ライブラリも多いし!

ただPHPのほうが脳死プレイできる率は高いです。
PHPはstr(文字)とint(数値)分ける必要ないんですもの。
・・・Perlも分けた記憶がない(‘A`)

面白いのはMatplotlibでのグラフ描写ですね。
Excelマジでかっこ悪いからやめてくださいお願いします。

なんだろう。欲しいけど有料が当たり前で、欲しいものとかあればな・・・。
ちょっと気になったのは、今ある相補鎖(ATGC→UACG)の変換ソフト(めっちゃ単純)が検索での流入数急上昇。
何があった?

機械学習の勉強から見えた「間違いだらけのAI認識」

「AI」という字面が新聞にもネットニュースにも数多く出てくるようになりました。

ただ、機械学習を勉強してて思ったんですが・・・・AIの定義が曖昧すぎる
内容が書いてある記事も殆ど無いし…。

AIが行っているのは画像認識なのか、自然言語処理なのか?
画像認識なら種類分け?数値回帰分析?
・・・単純にバズワード(流行り言葉)としての「AI」を使ってるのが多いのかなー?と思います。

ただのクラウドサービスやAIもどき(安い労働力を使った人力サービス)もAIって言いますしね。

「AIを利用して業務改善!」
中身読んでみると・・・それエクセルの重回帰分析でよくね?とか。

機械学習の研究者の方も同じような発言をしていました。
「AIという言葉を使うのはためらう」と。

熱に浮かされるのはいいですが・・・、真実を見たいですね。
自分も技術側から見た機械学習→画像認識の現在の限界を確認したいです。
もし、可能であれば誰かに仕える(使える)ようなプログラムコードに落とし込みたい。

pythonでシグモイド関数と階段関数の表示

ディープラーニング目指して初心者は今日も行く。
初見じゃ何もわからない初心者です。
シグモイド関数?階段関数??なにこれ。

シグモイド関数!

階段関数!

目で見たらわかりますね!

コード

シグモイド関数表示のコードは以下の通り。
numpyとmatplotlib.pylabのインストール必須です。

import numpy as np
import matplotlib.pylab as plt

def step_function(x):
    return np.array(x > 0, dtype=np.int)

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

def plot(functions):
    x = np.arange(-5.0, 5.0, 0.1)
    y = eval(functions)(x)
    plt.plot(x, y)
    plt.ylim(-0.1, 1.1) # y軸範囲の決定
    plt.show()

#plot('step_function')
plot('sigmoid')

最後を以下のように変更すると階段関数が表示されます。

plot('step_function')
#plot('sigmoid')

plot関数はeval()入れて簡単にしました。
同じこと書かなくていいので楽ちん。

引っかかった所

eval()入力のところで引っかかりました。

def plot(functions):
    略
    y = eval(functions)(x)
    略

plot(step_function)

“TypeError: eval() arg 1 must be a string, bytes or code object”
あれ???ん????

plot()の引数がstr(文字)なのに”で囲ってませんでした!残念。

↓解決方法

plot('step_function')

なんてやつだ・・・初心者過ぎて・・・初歩的すぎる。

教科書はこれ(ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装)使ってます。初心者でもわかりやすい!でも1ページ読み飛ばしたらすぐ意味不明になります。マジで。
先にいちばんやさしいPythonの教本は読んでコード書いてます。Pythonの基礎の基礎が学べます。

続く。

Python可読性高すぎてすごい

コード

ちょっと詰めて書いていますが

year = int(input("あなたの生まれ年を西暦4桁年で表記してください:"))
eto_list = ('子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥',)
number_of_eto = (year + 8) % 12
print("貴方の干支~は~{}デ~ス".format(eto_list[number_of_eto]))

for no, eto in enumerate(eto_list):
    print("{}番目の干支は{}です".format((no+1), eto))

出力

感想

PHPだと下の1、2どちらかで迷うところが、

// 1
foreach($array as $key => $value){}
// 2
for($i=0; $i<count($array); $i++){}

PythonだとNo要る、要らないでほぼ書き方が変わらないのがいいですね。

// No要らない
for eto in eto_list:
    print("干支は{}です".format(eto))
// No要る
for no, eto in enumerate(eto_list):
    print("{}番目の干支は{}です".format((no+1), eto))