借りてきた熊猫

イージーモードな人生を歩みたい。日々の備忘録として。

G検定に受かりました。

JDLA(日本ディープラーニング協会)が主催するG検定に合格しました。

 

f:id:rosi_tmp:20201123002717p:plain

www.jdla.org

 

忘れないうちに受かるまでの雑感をメモしておきます。 

勉強前の自分の状態

ゼロから始めるディープラーニングを4年前くらいに一通り読んでいたので誤差逆伝播法とかドロップアウトとか基礎知識はあり。

 

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

  • 作者:斎藤 康毅
  • 発売日: 2016/09/24
  • メディア: 単行本(ソフトカバー)
 

 

勉強を始めた時期

10月入ってから

勉強タイム

・通勤時間15分の間に公式テキストを読む

・お風呂時間に20分の間に公式テキストを読む

・休日に1-2時間、問題集を解く。

使ったテキスト・サイト

・公式テキスト 

 

・問題集 

 

・study-aiの模擬試験

study-ai.com

・DIVE INTO EXAMの模擬試験 

exam.diveintocode.jp

 

受験直前の自分の状態

DIVECODEの模擬試験で7-8割取れるくらい。

受験直後の感想

問題数は190問。200問以上あると思ってたから少ないなぁと最初思った。最終的には全然時間足りなかったんだけど。

半分は確信をもって解答、半分は自信なし。全問解くのに約90分くらい。残りの30分で自信のない問題を調べながら解答してたら、あっという間に解答時間終了。ちゃんと解答できたのは100問くらい。

体感的に法律系の問題が多く、知らないよ!って思いながら解いてた。公式テキスト見てもほとんど載ってないし…。4択を解く力(消去法で選択肢をいかに減らすか)を問われているように感じた。

全体雑感

法律系が多かったと言っても半分はAIの基礎的な問題だったのでちゃんと問題を解いて慣れておくのは重要。教師あり、教師なし、強化学習がどんなものか、手法にどんなものがあって、どんな特長があるのかは押さえておく必要がある。

大枠を理解する意味で公式テキストは良かったけど、公式テキストだけでG検定受かるのはかなり厳しいかなぁと思い、10月中旬になって問題集を購入。結果的に問題形式に慣れれたのは大きかったと思う。

DIVE INTO EXAMの模擬テストはよかった。問題がそのまま出ているものもあった。一方でstudy-aiの模擬テストは微妙だったかな。無料だし文句言えないけど。

とりあえず、受験料結構いい値段したから一発で受かってよかった。

 

 

RaspberryPiでCO2濃度を測定してみた

最近会社で頭がぼーっとしたり体調が悪くなったりする機会が多かったので、いろいろ調べてみたら執務室のCO2濃度が高いのが原因なのでは?と思い、RaspberryPiでCO2濃度を測ってみようと思いました。インターネットにたくさん情報が転がっていたのでほぼ素人の私でも割と簡単に測定できました。備忘として残しておきます。

ハード情報

RaspberryPi 3 Model B

測定基盤。元から持ってたものを使用。 OSはraspbian buster lite。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:    10
Codename:   buster

MH-Z19

CO2濃度測定センサ。AliExpressで購入。到着まで1ヶ月程度かかりましたが、1500円程度と安価で購入できました。 ja.aliexpress.com

ブレッドボード EIC−801

ラズパイとMH-Z19Bをつなぐためのボード。秋月電子通商で購入。 akizukidenshi.com

キャラクタ液晶ディスプレイモジュール完成品

CO2濃度を表示するディスプレイ。秋月電子通商で購入。 akizukidenshi.com

ブレッドボード・ジャンパーワイヤ(オス−メス) 15cm(黒) (10本入)

ラズパイとMH-Z19をつなぐワイヤー。秋月電子通商で購入。

akizukidenshi.com

ラズパイとMH-Z19B・キャラクタディスプレイの接続

ラズパイのGPIOの構成は以下公式サイトの通り。あまりよくわかっていないが、いろいろなサイトに情報が転がっている。

www.raspberrypi.org

ラズパイとMH-Z19Bの接続

以下のサイトを参考に接続。

qiita.com

一様MH-Z19Bのデータシートは以下を参照。 https://www.winsen-sensor.com/d/files/MH-Z19B.pdf

ラズパイとキャラクタディスプレイの接続

完成品を購入したので、GPIOの3,5,7,9に刺すだけ。簡単。

全部接続したものは以下の画像を参照。 f:id:rosi_tmp:20200929225606j:plain

CO2濃度測定

 pythonコマンドラインからMH-Z19Bを使用してCO濃度を測定できるライブラリが用意されているのでそれを利用。まずは、pipでライブラリをインストール。  

$ pip install mh-z19

以下のコマンドを実行するとCO2濃度を測定できる。

$ sudo python3 -m mh_z19
{"co2": 569}

測定結果の表示

測定結果を表示するために、ラズパイのi2Cインタフェースを有効にする必要がある。 以下のコマンドを打つとラズパイの設定画面が表示されるので、設定画面からi2cを有効にする。

# sudo raspi-config

5 Interfacing Optionsを選択 → P5 I2Cを選択 → を選択

次に、i2ctoolsをインストールする。

$ sudo apt-get install i2ctools

以下の通りi2cdetectコマンドを打って出力されればおけ。

$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --

次に、pythonからディスプレイに文字を打てるようにSMBusライブラリをインストールする。

$ pip install smbus2

これで測定結果を表示する準備ができたので、pythonスクリプトを書いていく。自分が最終的に作ったのは以下のコード。

from smbus import SMBus
import time
import datetime
import subprocess
import re
import sys

# i2c constant
i2c = SMBus(1)
addr02 = 0x3e
_command = 0x00
_data = 0x40
_clear = 0x01
_home = 0x02
display_on = 0x0f
LCD_1stline = 0x00
LCD_2ndline = 0x40+0x80


# program constant
_pattern = r'[0-9][0-9]:[0-5]0'
base_dir = '/home/pi/co2/csv/'


def command(code):
    i2c.write_byte_data(addr02, _command, code)
    time.sleep(0.1)


def writeLCD(message):
    mojilist = []
    for moji in message:
        mojilist.append(ord(moji))
    i2c.write_i2c_block_data(addr02, _data, mojilist)
    time.sleep(0.1)


def init():
    command(0x38)
    command(0x39)
    command(0x14)
    command(0x73)
    command(0x56)
    command(0x6c)
    command(0x38)
    command(_clear)
    command(display_on)


def getCO2():
    out = subprocess.check_output(['sudo', 'python3', '-m', 'mh_z19'])
    co2 = eval(out)['co2']
    return str(co2)


if __name__ == '__main__':
    dt_now = datetime.datetime.now()
    now_time = dt_now.strftime('%H:%M')
    co2 = getCO2()
    # init LCD display
    init()
    command(_clear)
    command(LCD_1stline)
    # write now time to LCD display
    writeLCD(now_time)
    command(LCD_2ndline)
    # write co2 to LCD display
    print(co2 + "ppm")
    writeLCD(co2 + "ppm")
    # write co2 to file every one hour(**:00)
    if re.fullmatch(_pattern, now_time) is not None:
        today = dt_now.strftime('%Y%m%d')
        line = now_time + ',' + co2 + '\n'
        file_name = base_dir + today + '.csv'
        with open(file_name, mode='a') as f:
            f.write(line)

上記のファイルを実行すると、ディスプレイにCO2濃度の測定結果が表示される。

$ sudo python3 /home/pi/co2/i2c_co2_display.py

f:id:rosi_tmp:20200930012401j:plain 無事にCO2濃度を測定でき、ディスプレイに表示することができました。

困ったこと

購入したブレッドボードが小さかったので、MH-Z19Bを斜めにして無理やりジャンパワイヤーで繋いでおり、ここが一番大変でした。。。pin付き?のMH-Z19Bがあるようなのでそちらを購入すればもっと簡単だったのかも。 pythonを使用してSMBus経由でディスプレイに表示するところでもっと詰まったところがあったと思うのですが(主にpython2とpython3が混在している影響等々で)、これをつくったのは少し前であまり覚えていません。思い出したら追記します。

参考にさせていただいたサイト

GPIO - Raspberry Pi Documentation

窓を開けて新鮮な空気をいれよう!Raspberry Pi でCO2 濃度を測ろう - Qiita

https://www.winsen-sensor.com/d/files/MH-Z19B.pdf

I2C接続AQMシリーズのキャラクタ表示LCDをラズパイで使う (1) AQM0802 | 電子工作の環境向上

【第1134回】toto予想

こんばんは。借りてきた熊猫です。

 

第1134回のtoto予想です。

 

Football LABの対戦シミュレーションを使用した予想結果はこちら。

f:id:rosi_tmp:20191102125053p:image

購入したtotoはこちら。

f:id:rosi_tmp:20191102125058j:image

toto-predict-1134

 

ホーム勝ちが優勢ですね。バランスをとって引き分け予想箇所にアウェイ勝ちを足してみました。(バランスを考えた時点でダメか…?)

当たりますように!

 

  

【第1133回】toto予想

こんばんは。借りてきた熊猫です。

 

第1133回のtoto予想です。

 

Football LABの対戦シミュレーションを使用した予想結果はこちら。

f:id:rosi_tmp:20191025231635p:plain

toto-flab-1133


購入したtotoはこちら。

f:id:rosi_tmp:20191025231703p:plain

toto-predict-1133

今回はJ2とJ3のみ。アウェイ勝ち予想が多いですね。

当たりますように!

 

  

【第1129回】toto予想【結果追記】

こんばんは。借りてきた熊猫です。

 

第1129回のtoto予想です。

 

Football LABの対戦シミュレーションを使用した予想結果はこちら。

f:id:rosi_tmp:20191012114537p:plain

toto-flab-1129


購入したtotoはこちら。

f:id:rosi_tmp:20191012114501p:plain

toto-predict-1129

今回は台風で3試合が中止となっています。中止になった試合は、的中としてカウントされるので、当選確率が上がります。当てたいなぁ。

当たりますように!

 

10/18結果追記

f:id:rosi_tmp:20191018234243p:plain

toto-result-1129

 

的中数:9/13

シングル的中数:6/9

ダブル的中数 :3/4

 

台風で3試合が自動で的中扱いだったので当てたかった・・・。

 

以上、記事終わり。

  

【第1126回】toto予想【結果追記】

こんばんは。借りてきた熊猫です。

 

第1126回のtoto予想です。

 

Football LABの対戦シミュレーションを使用した予想結果はこちら。

f:id:rosi_tmp:20191005092729p:image
引き分け予想が5試合あります。これはまたキャリーオーバーか・・・?


購入したtotoはこちら。

f:id:rosi_tmp:20191005092742j:image

 

当たりますように!

10/12結果追記

 

f:id:rosi_tmp:20191012114030p:plain

toto-result-1126

 

的中数:8/13

シングル的中数:6/9

ダブル的中数 :2/4

 

以上、記事終わり。

  

 

【第1121回】toto予想【結果追記】

こんばんは。借りてきた熊猫です。

 

第1121回のtoto予想です。

 

Football LABの対戦シミュレーションを使用した予想結果はこちら。

f:id:rosi_tmp:20190914114305p:image
ホーム勝ちが11試合!アウェイ勝利は仙台のみと結構大体な予想です。


購入したtotoはこちら。

f:id:rosi_tmp:20190914114309j:image

 

当たるといいなぁ。いや、当たりますように!

 

9/17結果追記

f:id:rosi_tmp:20190917210526p:plain

toto-flab-result-1121

f:id:rosi_tmp:20190917211705p:plain

 

的中数:10/13

シングル的中数:6/9

ダブル的中数 :4/4

 

footballlabの予想では9つ当たってますね。当てたかったなぁ〜。これは悔しい。。。

 

以上、記事終わり。