プロフィールPROFILE

ReyLukeさんのプロフィール

住所
未設定
出身
未設定

自由文未設定

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

67回 / 74日(平均6.3回/週)

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

本日のランキング(IN)
読者になる

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

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

ReyLukeさんの新着記事

31件〜60件

  • Kivy 背景に色を付ける(Python Kivyの取説・使い方 第4回)

    背景のレイアウトを追加する方法 背景に色を付けてみます。 前回のプログラムをそのまま使います。 # フル画面を解除して画面の幅と高さを設定 from kivy.config import Config Config.set('graphics', 'fullscreen', 0) Config.set('graphics', 'width', 320) Config.set('graphics', 'height', 568) Config.set('graphics', 'resizable', 0) from kivy.app import App from kivy.uix.boxlay…

  • Kivy kvファイルを使ってレイアウトを変更する(Python Kivyの取説・使い方 第3回)

    kvファイルとは? Appで終わるクラス名からAppを引いた小文字で同じ名前を持つkvファイルを呼び出します。例えば、class TestApp(App):の場合は kvファイルの名前は「test.kv」です。ラベルやボタンなどのレイアウト情報を別ファイルで管理して簡単に調整できます。 前回、ラベルとボタンを縦に並べたプログラムでkvファイルを作ってみます。 # フル画面を解除して画面の幅と高さを設定 from kivy.config import Config Config.set('graphics', 'fullscreen', 0) Config.set('graphics', 'wi…

  • Kivy ラベルとボタンを配置する(Python Kivyの取説・使い方 第2回)

    ラベルとボタンを配置する方法 # フル画面を解除して画面の幅と高さを設定 from kivy.config import Config Config.set('graphics', 'fullscreen', 0) Config.set('graphics', 'width', 320) Config.set('graphics', 'height', 568) Config.set('graphics', 'resizable', 0) from kivy.app import App from kivy.uix.boxlayout import BoxLayout # 追加部分 from …

  • Kivy 全画面表示を解除する(Python Kivyの取説・使い方 第1回)

    フル画面を解除してウィンドウの大きさを設定する方法 # フル画面を解除して画面の幅と高さを設定 from kivy.config import Config Config.set('graphics', 'fullscreen', 0) Config.set('graphics', 'width', 320) Config.set('graphics', 'height', 568) Config.set('graphics', 'resizable', 0) fullscreenフルスクリーンのオンオフを設定します。「0」でフル画面を解除できます。 width、height幅と高さを設定しま…

  • Python Kivyで日本語入力が出来ました

    はじめに ボタンを押すとテキストボックスの文字がラベルに表示されるプログラムを日本語入力に対応しました。 解説 こちらのサイトを参考にさせていただきました。 qiita.com cppファイルとdllファイルも同じフォルダに保存してpython multi_language_textinput.pyを編集していきます。 まずkivy languageの部分をkvファイルにしました。 次に変換候補は今回は必要ないと思い、その部分は削除しました。(細かい部分は消しきれてないかもしれません) そしてkvファイルのテキストボックスのsizeとposを指定しました。 ここで問題が発生します。sizeが認…

  • Kivyでの日本語入力に再挑戦(Python テキストボックス作成)

    本日の課題と目標 テキストボックスに日本語を入力する はじめに start-python.hateblo.jp 以前一度挑戦して諦めていたKivyでテキストボックスに日本語入力。dllを作っている方がいるということを教えていただき再び挑戦することになりました。 結論から言うと出来ました! 変換候補を出せてないのでちょっと残念ですが大満足です!これで諦めていたKivyを使ってスマホアプリが作れそうです。教えていただいた方に感謝です。 解説 こちらのサイトから勉強させていただきました。 Kivyで日本語入力 - Qiita プログラムコードをお借りして今回は使わない部分を削ってkvファイルを作りま…

  • 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', '…

カテゴリー一覧
商用