Start_python’s diary

ふたり暮らし

アラフィフ夫婦のフリーランスプラン

2019-01-01から1年間の記事一覧

Python GIFファイルをTwitterに張り付ける(GIFアニメーションに変換する)

はじめに 以前作成したGIFファイルがTwitterに張り付けると動きませんでした。原因を調べてみると色が最大256色しか使えないことがわかりました。 今回はすでに保存したGIFファイルをGIFアニメーションに変換するプログラムを作っていきます。 解説 色情報は…

Python GIFファイルの読み込み・編集・表示・書き込み

はじめに GIFファイルを編集するための準備を行います。GIFの読み込み、表示、書き込みの基本を勉強していきます。GIFの読み込み方は「OpenCV」と「Pillow(PIL)」がありますが、「OpenCV」が編集しやすそうなのでこちらを利用します。 モジュールのインポー…

Kivy ラベルとボタンの境界線を手動で移動させる(Python Kivyの取説・使い方 第15回)

ラベルとボタンの境界線を手動で移動させる方法 Splitter(スプリッター)ウィジェットを使います。境界をドラッグすることでサイズが変更できます。 プログラムのコード # フル画面を解除して画面の幅と高さを設定 from kivy.config import Config Config.s…

Kivy ファイル選択ダイアログからテキストファイルを読み込む(Python Kivyの取説・使い方 第14回)

はじめに 今回は納得できるまでの結果は出ませんでした。まだまだ課題が残ってますが、Kivyでのポップアップ(Popup)とファイル選択(FileChooser)をやってみました。 プログラムのコード # フル画面を解除して画面の幅と高さを設定 from kivy.config impo…

Kivy テキストファイルの読み込みと保存(Python Kivyの取説・使い方 第13回)

はじめに Kivyのテキストボックスの内容をtxtファイルへ保存する方法を調べるのに苦労しました。それもそのはずで保存はKivyモジュールは使わずPythonのwrite関数を使うみたいです。最近KivyばかりやっていたのでなんでもKivyでしようとしてました。 Python…

Kivy 日本語の表示と日本語を入力する(Python Kivyの取説・使い方 第12回)

日本語表示と日本語入力をする方法 1)kvファイルに日本語を対応させる 2)日本語を表示させる 3)日本語を入力する の順番で解説していきます。 1)kvファイルに日本語を対応させる まずラベル、テキストボックス、ボタンを作ります。 # フル画面を解除…

Kivy グラフを表示する(Python Kivyの取説・使い方 第11回)

グラフを表示する方法 今回はMatplotlibモジュールを使ってグラフを表示していきます。BoxLayoutの上にラベル、真ん中にグラフ、下にボタンを表示させたいと思います。 プログラムのコード # フル画面を解除 from kivy.config import Config Config.set('gra…

Kivy 写真の向きを正しく表示する(Python Kivyの取説・使い方 第10回)

写真の向きを正しく表示する方法 今回はPILモジュールを使って「画像を回転」してKivyで表示していきます。 画面のスライドのときに使った「Imageウィジェット」では、ファイル名を指定して画像を表示するため画像ファイルを編集する場合は一度保存する必要…

スマホで撮った写真が横を向いてしまう(Python Kivyの取説・使い方 番外編)

はじめに 前回の画面のスライドで、なぜか縦向きの写真が横を向いてしまう問題を調べていきます。 スマホで撮った写真などは、画像ファイルの中に撮影した日付、位置情報、写真の向きなどのデータが格納されています。そのデータのことを「Exif」というらし…

Kivy 画面をスライドさせる(Python Kivyの取説・使い方 第9回)

画面をスライドさせる方法 今回は画面のスライドを作ってみます。Carousel(ウェジットの1つ)を使います。Carouselとは、直訳でメリーゴーラウンドや回転式コンベヤーという意味です。スライド間でスワイプして水平または垂直に移動できます。 まずは基本…

Kivy 画面をスクロールさせる(Python Kivyの取説・使い方 第8回)

画面をスクロールさせる方法 今回は画面スクロールを作ってみます。ScrollView(ウェジットの1つ)を使います。 プログラムのコード # フル画面を解除して画面の幅と高さを設定 from kivy.config import Config Config.set('graphics', 'fullscreen', 0) Co…

Kivy ボタンでボールの速度を変える(Python Kivyの取説・使い方 第7回)

ボールの速度を変える方法 今回はボタンを使ってみます。スピードアップとスピードダウン、そして逆再生の3つのボタンを作ります。(本当は一時停止を作りたかったのですがグローバル変数とか面倒だったので逆再生にしたのは内緒です) 第6回で使ったプロ…

Kivy サブ画面でボールを動かす(Python Kivyの取説・使い方 第6回)

サブ画面でボールを動かす方法 第5回の続きです。ボールが動くようになりました。 KivyのチュートリアルにあるPong Gameを参考にしていきます。チュートリアルの「ボールのアニメーションを追加する」からです。 プログラムのコード # フル画面を解除して画…

Kivy ボールが動かない(Python Kivyの取説・使い方 番外編)

はじめに 本日は最後までボールは動きません。 特に進展もないので飛ばしてもらった方がいいです。ハマった様子を見たい方のみ先にお進みください。 Kivyのチュートリアルの「ボールのアニメーションを追加する」でボールが動きません。 プログラムのコード …

Kivy レイアウトの中に別のレイアウトを作る(Python Kivyの取説・使い方 第5回)

レイアウトの中に別のレイアウトを作る方法 KivyのチュートリアルにあるPong Gameを参考にしていきます。 レイアウトの中に別のレイアウトで「Pong Game」ぽいのを作っていきます。 前回のプログラムを少し変更します。 # フル画面を解除して画面の幅と高さ…

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

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

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

kvファイルとは? Appで終わるクラス名からAppを引いた小文字で同じ名前を持つkvファイルを呼び出します。例えば、class TestApp(App):の場合は kvファイルの名前は「test.kv」です。ラベルやボタンなどのレイアウト情報を別ファイルで管理して簡単に調整で…

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

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

フル画面を解除してウィンドウの大きさを設定する方法 # フル画面を解除して画面の幅と高さを設定 from kivy.config import Config Config.set('graphics', 'fullscreen', 0) Config.set('graphics', 'width', 320) Config.set('graphics', 'height', 568) C…

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

はじめに ボタンを押すとテキストボックスの文字がラベルに表示されるプログラムを日本語入力に対応しました。 解説 こちらのサイトを参考にさせていただきました。 qiita.com cppファイルとdllファイルも同じフォルダに保存してpython multi_language_texti…

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

本日の課題と目標 テキストボックスに日本語を入力する はじめに start-python.hateblo.jp 以前一度挑戦して諦めていたKivyでテキストボックスに日本語入力。dllを作っている方がいるということを教えていただき再び挑戦することになりました。 結論から言う…

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

Deep Q-Network(DQN)による倒立振子 第7回 はじめに 前回は学習させる方法を見ていきました。今回は残りの部分をさっと流して棒を安定させるためにどこがおかしいか探っていきます。 最後のプログラムのコードです。 if DQN_MODE: targetQN = mainQN # 行…

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

Deep Q-Network(DQN)による倒立振子 第6回 はじめに 前回は学習したモデルで予測した結果を出しました。今回は学習させる方法を見ていきます。 # Qネットワークの重みを学習・更新する replay if (memory.len() > batch_size) and not islearned: mainQN.…

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

Deep Q-Network(DQN)による倒立振子 第5回 はじめに モジュールのバージョン問題やクラスの理解不足でなかなか先に進みません。 今回からメイン部分を見ていきます。 # [5.3]メインルーチン-------------------------------------------------------- for…

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

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

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

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

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_d…

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

Deep Q-Network(DQN)による倒立振子 第1回 はじめに 今回からDeep Q-Network(DQN)を勉強します。ざっとコードを見た感じでは絶望的にまったくわかりません。 一日二日では終わりそうにないのでその日に進んだ分だけ載せていきます。十分に理解できるの…

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

はじめに Deep Q-Network(DQN)の勉強を始める前に気になったことがあったのでちょっと寄り道します。 それは、CartPoleのカートを自分で操作してみたくなりました。(右移動と左移動をキーボードで入力) とりあえず動けばオッケー、ということで完成形がこ…

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

gymの倒立振子を使って強化学習モンテカルロ法 モンテカルロ法とQ-learning、SARSA法の違い モンテカルロ法は、アクションごとにQ値を更新するQ-learningやSARSA法と違い、CartPoleが倒れるまで行動しその行動履歴から一気にQ値を更新します。 モンテカルロ…