プロフィールPROFILE

ReyLukeさんのプロフィール

住所
未設定
出身
未設定

自由文未設定

ブログタイトル
ふたり暮らしーアラフィフ夫婦のフリーランスプラン
ブログURL
https://start-python.hateblo.jp
ブログ紹介文
アラフィフの普通のサラリーマンが、将来フリーランスになれるかを目指してプログラミングをいちから勉強をはじめました。 夫がブログに残した勉強の過程を公開できるようにブログ編集しながら一緒に学んでいきます。
更新頻度(1年)

30回 / 30日(平均7.0回/週)

ブログ村参加:2019/11/10

読者になる

ReyLukeさんの人気ランキング

  • IN
  • OUT
  • PV
今日 12/10 12/09 12/08 12/07 12/06 12/05 全参加数
総合ランキング(IN) 17,572位 17,719位 18,881位 18,947位 17,724位 19,023位 17,765位 980,308サイト
INポイント 0 20 10 10 20 10 20 90/週
OUTポイント 0 20 10 10 20 10 20 90/週
PVポイント 10 510 130 80 510 300 180 1,720/週
ライフスタイルブログ 2,191位 2,198位 2,299位 2,299位 2,175位 2,281位 2,173位 66,604サイト
二人暮らし 57位 58位 60位 59位 54位 59位 54位 1,705サイト
フリーランス生活 16位 16位 18位 19位 16位 19位 16位 679サイト
IT技術ブログ 27位 27位 29位 29位 26位 30位 25位 7,923サイト
Python 2位 2位 2位 2位 2位 2位 2位 125サイト
今日 12/10 12/09 12/08 12/07 12/06 12/05 全参加数
総合ランキング(OUT) 36,329位 36,817位 35,475位 35,693位 34,294位 35,647位 32,978位 980,308サイト
INポイント 0 20 10 10 20 10 20 90/週
OUTポイント 0 20 10 10 20 10 20 90/週
PVポイント 10 510 130 80 510 300 180 1,720/週
ライフスタイルブログ 3,845位 3,815位 3,723位 3,721位 3,667位 3,737位 3,552位 66,604サイト
二人暮らし 109位 105位 106位 104位 99位 102位 93位 1,705サイト
フリーランス生活 18位 19位 18位 17位 17位 19位 18位 679サイト
IT技術ブログ 46位 43位 39位 36位 30位 31位 26位 7,923サイト
Python 2位 2位 2位 2位 2位 2位 2位 125サイト
今日 12/10 12/09 12/08 12/07 12/06 12/05 全参加数
総合ランキング(PV) 7,091位 7,067位 7,699位 7,135位 7,000位 7,714位 8,132位 980,308サイト
INポイント 0 20 10 10 20 10 20 90/週
OUTポイント 0 20 10 10 20 10 20 90/週
PVポイント 10 510 130 80 510 300 180 1,720/週
ライフスタイルブログ 898位 900位 945位 912位 896位 959位 987位 66,604サイト
二人暮らし 25位 25位 26位 25位 24位 25位 26位 1,705サイト
フリーランス生活 4位 4位 5位 6位 5位 5位 6位 679サイト
IT技術ブログ 47位 46位 51位 49位 46位 52位 53位 7,923サイト
Python 2位 2位 2位 2位 2位 2位 2位 125サイト

新機能の「ブログリーダー」を活用して、ReyLukeさんの読者になりませんか?

ハンドル名
ReyLukeさん
ブログタイトル
ふたり暮らしーアラフィフ夫婦のフリーランスプラン
更新頻度
30回 / 30日(平均7.0回/週)
読者になる
ふたり暮らしーアラフィフ夫婦のフリーランスプラン

ReyLukeさんの新着記事

1件〜30件

  • Deep Q-Network(DQN)(最終回)なんとか棒を倒さず安定させられました

    Deep Q-Network(DQN)による倒立振子 第7回 はじめに 前回は学習させる方法を見ていきました。今回は残りの部分をさっと流して棒を安定させるためにどこがおかしいか探っていきます。 最後のプログラムのコードです。 if DQN_MODE: targetQN = mainQN # 行動決定と価値計算のQネットワークをおなじにする # 1施行終了時の処理 if done: total_reward_vec = np.hstack((total_reward_vec[1:], episode_reward)) # 報酬を記録 print('%d Episode finished afte…

  • Kerasで重みの学習をする(Python Deep Q-Network(DQN))

    Deep Q-Network(DQN)による倒立振子 第6回 はじめに 前回は学習したモデルで予測した結果を出しました。今回は学習させる方法を見ていきます。 # Qネットワークの重みを学習・更新する replay if (memory.len() > batch_size) and not islearned: mainQN.replay(memory, batch_size, gamma, targetQN) ざっと流れを追ってみましたがなかなか理解するのは難しそうでした。少しずつやっていきます。 プログラムの流れ if (memory.len() > batch_size) and not…

  • Kerasで予測した結果を出す(Python predictメソッドの使い方)

    Deep Q-Network(DQN)による倒立振子 第5回 はじめに モジュールのバージョン問題やクラスの理解不足でなかなか先に進みません。 今回からメイン部分を見ていきます。 # [5.3]メインルーチン-------------------------------------------------------- for episode in range(num_episodes): # 試行数分繰り返す env.reset() # cartPoleの環境初期化 state, reward, done, _ = env.step(env.action_space.sample()) # …

  • Python クラスって難しい(クラスの使い方を勉強しなおしました)

    Deep Q-Network(DQN)による倒立振子 第4回 はじめに 今回はこちらの二行を見ていきます。 memory = Memory(max_size=memory_size) actor = Actor() クラス:Memoryを呼び出しています。 # [3]Experience ReplayとFixed Target Q-Networkを実現するメモリクラス class Memory: def __init__(self, max_size=1000): self.buffer = deque(maxlen=max_size) self.buffer = deque(maxlen=m…

  • Kerasでニューラルネットワークを作る

    Deep Q-Network(DQN)による倒立振子 第3回 はじめに 今回は「mainQN = QNetwork(hidden_size=hidden_size, learning_rate=learning_rate) # メインのQネットワーク」この一行を見ていきます。 クラス:QNetworkを呼び出しています。 # [2]Q関数をディープラーニングのネットワークをクラスとして定義 class QNetwork: def __init__(self, learning_rate=0.01, state_size=4, action_size=2, hidden_size=10): se…

  • Tensorflowのバージョンは何を使ったらいいかわからない

    Deep Q-Network(DQN)による倒立振子 第2回 はじめに 前回からDeep Q-Network(DQN)を勉強しています。前回のエラーの原因を詳しく調べていきます。 「WARNING:tensorflow:The name tf.get_default_session is deprecated. Please use tf.compat.v1.get_default_session instead.」 この部分を翻訳かけて検索すると、 Python - Pytonで沢山エラーメッセージが出てしまいました...。|teratail こちらに解決策が載ってました。どうやらモジュール…

  • Deep Q-Network(DQN)エラーが大量に起こって安定しない

    Deep Q-Network(DQN)による倒立振子 第1回 はじめに 今回からDeep Q-Network(DQN)を勉強します。ざっとコードを見た感じでは絶望的にまったくわかりません。 一日二日では終わりそうにないのでその日に進んだ分だけ載せていきます。十分に理解できるのには数か月もしくは理解できることはないのかもしれませんがいけるとこまでいってみます。 プログラムのコードは CartPoleでDQN(deep Q-learning)、DDQNを実装・解説【Phythonで強化学習:第2回】 こちらからそのまま使わせていただきました。 まずはコピペで動作確認 200試行を過ぎても安定しませ…

  • CartPoleを手動で動かす (倒立振子)

    はじめに Deep Q-Network(DQN)の勉強を始める前に気になったことがあったのでちょっと寄り道します。 それは、CartPoleのカートを自分で操作してみたくなりました。(右移動と左移動をキーボードで入力) とりあえず動けばオッケー、ということで完成形がこちら。 プログラムのコード import gym import pygame pygame.init() screen = pygame.display.set_mode((600, 120)) pygame.display.set_caption("test") myclock = pygame.time.Clock() env…

  • モンテカルロ法による倒立振子 (Q値を見える化)

    gymの倒立振子を使って強化学習モンテカルロ法 モンテカルロ法とQ-learning、SARSA法の違い モンテカルロ法は、アクションごとにQ値を更新するQ-learningやSARSA法と違い、CartPoleが倒れるまで行動しその行動履歴から一気にQ値を更新します。 モンテカルロ法は一度未来を見てから一気にQ値の更新をかけるため、遠い未来の報酬も比較的早く学習できるというメリットがあります。 20試行回数くらいですでに安定しています。1試行が終わったときに一気にQ値が更新されます。 プログラムのコード # coding:utf-8 # [0]ライブラリのインポート import gym #…

  • 強化学習の歴史/11月の振り返り

    強化学習の歴史 強化学習の始まりは1763年「ベイズの定理」のベースが発表された年だと言われています。1989年「Q学習」が開発され強化学習の実用性がかなり上がりました。その後「冬の時代」が続きますが、2006年「ディープラーニング」の概念が提案されました。そして2009年、ニューラルネットワークをわずか3週間ほどで十分に学習させられることを立証し、最先端の音声認識技術を確立させました。それから10年、飛躍的に進化を続けています。 11月の振り返って 強化学習、楽しいです。やっとQ学習がわかってきて(計算式は相変わらず理解できませんが)1989年に追いついた感じです。勉強するにしたがって「ディ…

  • SARSA法による倒立振子 (Q値を見える化)

    gymの倒立振子を使って強化学習SARSA法 Q-learningとSARSA法の違い 次のアクション(next_action)を学習の前に求める(SARSA法)か、学習の後で決定する(Q-learning)かが違います。先に求めるSARSA法だとε-greedy法によりランダムになる場合が出てきます。 むずかしいことはわかりませんが、Q-learningのメリットははランダム要素が少なく結果が早く収束することだと思います。SARSA法のメリットはランダム要素により収束まで時間はかかりますが最適な方向へより安定した結果を出せることだと思います。(間違ってたらごめんなさい) まとめるとSARSA…

  • Q-learning(Q学習)のQ値を見える化

    gymの倒立振子を使って強化学習Q-learning(Q学習)第2回 はじめに 前回は、状態を「4つの要素を6分割」して1296通りの中から今ある状態のときの「右と左」に「報酬と罰則」を与えながら得点の高い方を選ぶやり方でした。 今回は、状態を「2つの要素を8分割と6分割」にして48通りでやってみます。 これで8✖️6✖️2の三次元配列のq_tableにできるのて、得点の変化を見ながら学習させていけそうです。 表の横が棒の角度(-0.5,~0.5)、縦が棒の角速度(-2.0~2.0)です。上が大きいときは右に移動、下が大きいときは左に移動となります。 30試行回数くらいの様子です。50試行回数…

  • Q-learning(Q学習)による倒立振子 (棒を立て続ける)

    gymの倒立振子を使って強化学習Q-learning(Q学習)第1回 500試行ほどの学習によりかなり安定して棒を支えられるようになりました。 プログラムのコードは CartPoleでQ学習(Q-learning)を実装・解説【Phythonで強化学習:第1回】 こちらからそのまま使わせていただきました。 解説 変数 q_table 【重要】 「6の4乗」個と「2」個からなる二次元配列 (初期値は全て -1~1の乱数) 変数 state 4つの要素を6分割した値を6進数で表して、さらに十進数にしたもの (6個ずつの四次元配列を一次元配列に変換したときの何番目か) np.argmax関数 act…

  • 本格的に機械学習アルゴリズムを勉強していきます

    機械学習とはどういうものか? 機械学習の分類にはさまざまな分類方法がありますが、このアルゴリズムを次の3種類に分ける考え方があります。 ・教師あり学習(Supervised Learning) 過去のデータから将来起こりそうな事象を予測する用途に使われます。 ・教師なし学習(Unsupervised Learning) アルゴリズム自身がデータを探索してその内部に何らかの構造を見つけ出します。 ・強化学習(Reinforcement Learning) どの行動が最大の報酬を生み出すかを、試行錯誤を通して突き止めます。 今回は強化学習について勉強していきたいと思います。 本日の課題と目標 gy…

  • 【完成版】特定のウィンドウだけの動画とGIFを保存したい (Python デスクトップキャプチャ2)

    本日の課題と目標 録画時間と待機時間を自由に変更できるようにする 保存するウィンドウの名前を指定できるようにする はじめに 前回作成したデスクトップ画面を録画するプログラムを改良します。録画が始まるタイミングと終わったタイミングがわかるようにしました。 プログラムのコード import cv2 import numpy as np from PIL import ImageGrab import ctypes import win32gui import tkinter import time # ウィンドウのタイトル名 root = tkinter.Tk() root.title('test…

  • 特定のウィンドウだけの動画とGIFを保存したい (Python デスクトップキャプチャ)

    本日の課題と目標 Pythonでデスクトップの動画キャプチャを作る 特定のウィンドウだけをキャプチャする 動画と一緒にGIFでも保存する 今後の目標 録画時間と待機時間を自由に変更できるようにする 保存するウィンドウの名前を指定できるようにする はじめに 完成したプログラムの動きのあるところを貼り付けたかったのでフリーソフトを探そうとしましたが自分で作れればいいなと思い挑戦してみました。 苦労した点は、保存した動画の色が変になってしまい原因がわからなかったところです。 プログラムのコード # 画像書き込み import cv2 # 型変換 import numpy as np # スクリーンシ…

  • Tkinterでスライダーを使ってカウントダウンを作る(Python タイマー作成)

    本日の課題と目標 Tkinterでタイマーを作る Tkinterでスライダーを利用する はじめに 以前Kivyで作ったのと同じものをTkinterで作成します。最初に設定した秒数だけカウントダウンするプログラムです。 スライダー(slider)のことをTkinterではスケール(scale)というみたいです。 プログラムのコード import tkinter import time # ウィンドウのタイトル名 root = tkinter.Tk() root.title("test") root.geometry("300x150") # キャンバスエリアの設定 canvas = tkinte…

  • Tkinterでボタンとラベルを利用する (Python ボタンとラベルの配置)

    本日の課題と目標 Tkinterでボタンとラベルを利用する はじめに 以前Kivyで作ったのと同じものをTkinterで作成します。テキストボックスに続きボタンとラベルを作っていきます。 プログラムのコード import sys import tkinter # ウィンドウのタイトル名、幅と高さを設定 root = tkinter.Tk() root.title(u"test") root.geometry("300x150") # ボタンが押されるとここが呼び出される def EntryValue(event): # ここで,valueにEntryの中身が入る value = EditBox…

  • Tkinterでテキストボックスを利用する (Python テキストボックスの配置)

    本日の課題と目標 Tkinterでテキストボックスを利用する 日本語入力が出来るかテストする はじめに 今回から新たにTkinterを勉強していきます。ラベルとボタンは後回しにして、テキストボックスを作っていきます。 プログラムのコード(エラー) import sys import Tkinter # ウィンドウのタイトル名、幅と高さを設定 root = Tkinter.Tk() root.title(u"test") root.geometry("300x150") # エントリー(テキストボックス) EditBox = Tkinter.Entry(width=200) EditBox.in…

  • Kivyでの日本語入力は諦めました

    本日の課題と目標 テキストボックスに日本語を入力する はじめに 前回テキストボックスに日本語が入力できなかったので、いろいろ調べました。 結論として Kivyでの日本語入力は諦めます。 おそらく多くの人がここで挫折していったのでしょう。ほかにも方法があるなら Kivyにこだわる必要もないかなと思いました。 プログラムのコード 解説 Kivyのテキストボックスで複数行なら日本語は入力できます。ただし問題はエンターキーを押すまで表示されない、つまり漢字に変換することも難しいです。 対策はいろいろありそうですがどうもスッキリせず納得いく形にならなそうです。 Kivyだとやりたい事が出来そうにないので…

  • Kivyでテキストボックスを利用する (Python テキストボックスの配置と取得)

    本日の課題と目標 テキストボックスを配置する テキストボックスから取得する はじめに 今回はテキストボックスを使用します。これでラベル、ボタン、スライダー、テキストボックスが使えるようになりました。 プログラムのコード # フル画面を解除して画面の幅と高さを設定 from kivy.config import Config Config.set('graphics', 'fullscreen', '0') Config.set('graphics', 'width', '300') Config.set('graphics', 'height', '150') from kivy.app im…

  • Kivyでスライダー(slider)を使ってみる(Python タイマー作成2)

    スライダーとは? ITの分野では、コンピュータの操作画面で、棒状の領域の上に現在位置を指し示す小さな印を表示し、これを利用者が上下あるいは左右に移動させることで値や範囲を指示する入力要素のことをスライダーという。厳密には、現在位置を表す印をスライダー、スライダーが移動できる棒状の領域をスライダーバー(slider bar)という。 スライダーバーは、ウィンドウの表示領域を指し示すものはスクロールバー(scroll bar)とも呼ばれ、音声や動画の再生ソフトで現在の再生位置を指し示すものはシークバー(seek bar)とも呼ばれる。 本日の課題と目標 カウントダウンの初期値を変更する スライダー…

  • Kivyでkvファイルを利用してカウントダウンを作る(Python タイマー作成)

    本日の課題と目標 kvファイルを利用する カウントダウンを作る はじめに 今回は pvファイルを使っていきます。最初に設定した秒数だけカウントダウンするプログラムです。 kvファイルに日本語が含まれてエラーになりました。ほかに方法はあると思いますが今回はコメントで日本語を使用していたので全て削除しました。 プログラムのコード # フル画面を解除して画面の幅と高さを設定 from kivy.config import Config Config.set('graphics', 'fullscreen', '0') Config.set('graphics', 'width', '300') Co…

  • Kivyでボタンの位置と大きさを決める (Python ボタン作成)

    本日の課題と目標 ボタンを作成 ボタンを押したら実行 今後の目標 カウントダウンを作る はじめに 今回は pvファイル(後日詳しくやります)を使わずにコードを書いていきます。ボタンを押すと「Hello World」と表示されるだけのプログラムです。 調べるのに苦労したところは、ボタンの位置と大きさの設定とkvファイルなしでのやり方です。 プログラムのコード① # フル画面を解除して画面の幅と高さを設定 from kivy.config import Config Config.set('graphics', 'fullscreen', '0') Config.set('graphics', '…

  • Pythonでボタン作成にはモジュール(ライブラリ)を何にするか

    本日の課題と目標 ボタン作成の準備 ラベル(文字)を表示する 今後の目標 ボタンを作成 ボタンを押したら実行 カウントダウンを作る はじめに 今まで作ってきたプログラムをボタンで実行してみたくなりました。また初期の変数もコードを変更せずに入力できるようにしたいです。 今までなら「python ボタン作成」でググって・・・なるほど。ボタンを作れるモジュールはTkinterか、となってました。 これからは、ほかにもボタンを作れるモジュールを探します。 ありました、しかも4つ。「Tkinter」「Kivy」「PyQt」「wxPython」の4つがおすすめのようです。 「Tkinter」ばかり出てきて…

  • YOLOの機械学習は時間がかかる

    第ニ章 keras−yolo3で学習させる 第3回 YOLO 学習開始! こちらのサイトを参考にさせていただきました https://sleepless-se.net/2019/06/21/how-to-train-keras%e2%88%92yolo3/ YOLO 学習開始! 本当に時間がかかります。朝9時にスタートして終わったのは15時頃でした。 (計60枚の画像なのでこの程度で済んでいるのだと思います) 学習済みのモデルを実行 python yolo_video.py --image を実行して画像のファイル名を入力。 結果は・・・ うーん、散々でした。20枚の学習データで少なすぎたのと…

  • アノテーションにはVOTTがおすすめ

    第ニ章 keras−yolo3で学習させる 第2回 VOTTを使ってアノテーションファイルを作成 アノテーションとは? 「画像のここに対象物がありますよ。と伝えることをアノテーションといいます。」 「人の目的に沿ったルールをAI(人工知能)に学習させたいとき、正しく学習させるための大量のデータが必要です。そのため、AI開発にはデータへの正しいタグ付けが非常に重要です。そのプロセスをアノテーション、タグ付けされたデータを教師データと呼びます。」 などの説明がされています。 こちらのサイトを参考にさせていただきました。 https://sleepless-se.net/2019/06/21/how…

  • Pythonで画像収集ならiCrawlerがおすすめ

    第ニ章 keras−yolo3で学習させる 第1回 教師画像を用意する 一晩考えた結果、今ある最新のバージョンで勉強したほうが良いと思いこのまま進めてみることにしました。 https://sleepless-se.net/2019/06/21/how-to-train-keras%E2%88%92yolo3/ 今回はこちらを参考にさせていただきました iCrawlerを使ってみます。 icrawlerモジュールをインストールして pip install icrawler このコードでオッケー from icrawler.builtin import GoogleImageCrawler cra…

  • バージョン問題

    第一章 迷走編 第4回 YOLOで物体認識 こちらを参考にさせていただきました。 https://tech-diary.net/keras-yolov3/ 必要になるモジュール Tensorflow 2.0 Keras 2.2.4 Matplotlib 3.1.1 Pillow 6.2 上記の4つをインストールしています。 順調にYOLOをダウンロードして実行してみるとエラー出まくります。 原因はTensorflowのバージョンにあるみたいでした。バージョン2.0から大幅に仕様が変わったらしいです。 Tensorflowのバージョンを2.0から1.4にダウングレードしました。 上手く動きました…

  • アルゴリズムとモジュールの選別

    第一章 迷走編 第3回 ふりだしに戻る 大人の事情で物体認識に変更します。 今回は物体認識するために適したモジュールとアルゴリズムを調べます。 まずアルゴリズムを決めてからそれが使えるモジュールを探したいと思います。 アルゴリズムとは? 問題を解決するための方法や手順のこと。 ひとことで物質認識といっても様々な手法や歴史があります。難易度、精度、対象物によって適した手法は違います。 例えると山登り。何をするかは山選び、山が決まればどの道で山頂まで行くかのルートを探します。 今までは計画性なしで突っ込んでましたが、これからは先に勉強した方が近道だとわかりました。 話が長くなりましたがこちらを参考…

カテゴリー一覧
商用