- 1. AirSimを用いた強化学習
- 2. 文字列とリストの変換
- 3. 『サイバーセキュリティプログラミング第2版』の読書メモ (3)
- 4. Pythonで標準入力された場合の処理
- 5. Airsimの画像 API
- 6. 40代おっさんFastAPIを勉強する②
- 7. [Python] PyAutoGUIをimportした時にtkinterの見た目が変わる事
- 8. PythonとYouTubeAPIで急上昇の動画のデータを取ってくる
- 9. 『サイバーセキュリティプログラミング第2版』の読書メモ (2)
- 10. お客様の中に24時間監視体制で調子の悪いwimaxを再起動できるエンジニアの方はいらっしゃいませんか!!!
- 11. PythonでSpeechRecognitionを使ってリアルタイム文字起こし【Windows】
- 12. 40代おっさんFastAPIを勉強する
- 13. Pythonで祝日を判定
- 14. PyQt6Creatorにて作成した.uiファイルを.pyファイルへ変換
- 15. [Django]settings.pyでよく見るパラメータまとめのメモ
- 16. VSCodeにてDocker(CentOS7)のFlask環境を構築(venv使用)
- 17. Deep Learning from scratch 2にBahdanau Attention
- 18. DataFlowのパイプラインでCerberusの機能を使って、csvをチェックしてみた。
- 19. ubuntuでtkinterが使えなくなった(泣)
- 20. 【OpenCV】2つの画像の類似点の座標(X,Y)をndarray形式の変数に格納する【Python】
AirSimを用いた強化学習
今回はAirSimを用いた強化学習について自分なりに翻訳しまとめたので記事にしたいと思います。
以下では、AirSim API の周りに OpenAI ジム ラッパーを使用し、標準の RL アルゴリズムの安定したベースライン実装を使用して、AirSim に DQN を実装する方法について説明します。これらの例を実行するには、stable-baselines3 をインストールすることをお勧めします (https://github.com/DLR-RM/stable-baselines3 を参照してください)。
## 免責事項
まだ活発に開発されているため以下で共有するのは、パフォーマンスを向上させるために拡張および微調整できるフレームワークです。## Gym wrapper
AirSim をジム環境として使用するために、AirSim 固有の step、_get_obs、_compute_reward、reset などの基本メソッドと対象のタスクを拡張および再実装します。これらの例で使用されている車とドローンのサンプル環境は、PythonClient/reinforcement_l
文字列とリストの変換
文字列を一文字ずつにリスト化する方法、及び、一文字ずつのリストを文字列に統合する方法を知らなかったので書きました。
# 文字列を一文字ずつのリストにする
“`
#「あいうえお」をリストにする
mojiretsu = ‘あいうえお’
mojilist = list(mojiretsu)
“`# 一文字ずつのリストを文字列に統合する
“`
mojiretsu = ”.join(mojilist)
“`
『サイバーセキュリティプログラミング第2版』の読書メモ (3)
ひきつづき『サイバーセキュリティプログラミング第2版』の読書メモです。
https://www.oreilly.co.jp/books/9784873119731/
# 3.4 ICMP のパース より
P63 Scanner クラスの sniff メソッドを抜粋。
“`python
def sniff(self):
hosts_up = set([f'{str(self.host)} *’])
try:
while True:
# パケットの読み込み
raw_buffer = self.socket.recvfrom(65535)[0]
# バッファーの最初の20バイトからIP構造体を作成
ip_header = IP(raw_buffer[0:20])
# ICMPであればそれを処理
if ip_header.proto
Pythonで標準入力された場合の処理
競プロに手を出したばかりで標準入力の処理を最近知ったので、一番基本的なやつの備忘録です。
# 一つのものだけ標準入力された場合“`
#文字列が与えられた場合
a = input()#数字が与えられた場合
b = int(input())
“`# 横並びで入力が与えられた場合
“`
list = input().split()
“`※入力が縦一列の場合は「一つのものだけ標準入力された場合」を行数分繰り返せば良い。
後はこれの応用で、できそうな気がしました。
もう少し詳しくなったら加筆します。
Airsimの画像 API
今回はAirsimの画像APIの記事を翻訳したものを記事にいたしました。C++でも同様なことができますが今回自分はPythonのコードのみを記載しております。C++をお使いの方は元の記事のコードをお使いください。
元のURLはこちらになります。https://microsoft.github.io/AirSim/image_apis/# 画像 API
AirSim API に慣れていない場合は、まず一般的な API ドキュメントをお読みください。# 単一の画像を取得する
「0」という名前のカメラから単一の画像を取得するサンプル コードを次に示します。 戻り値は、png 形式のイメージのバイト数です。 非圧縮形式やその他の形式、利用可能なカメラを取得するには、次のセクションを参照してください。“` :Python
import airsim #pip install airsim# for car use CarClient()
client = airsim.MultirotorClient()png_image = client.simGetImage(“0”
40代おっさんFastAPIを勉強する②
## 本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。## postメソッド
Pydantic は、Python の型アノテーションを利用して、実行時における型ヒントを提供したり、データのバリデーション時のエラー設定を簡単に提供してくれるためのライブラリです。
“`python
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModelclass Item(BaseModel): # BaseModelを継承してItemを作る
# データの構造を定義
name: str
description: Optional[str] = None
price: int
tex: Optional[float] = Noneapp = FastAPI()
@app.post(“/item
[Python] PyAutoGUIをimportした時にtkinterの見た目が変わる事
### 問題
PyAutoGUIをimportした時にtkinterの見た目が変わった。
importすると、しない時と比べてくっきり(小さく)みえるようになる。
### 解決
PyAutoGUIに含まれる
“`Python
try:
ctypes.windll.user32.SetProcessDPIAware()
except AttributeError:
pass
“`
が問題。
逆に、くっきり(小さく)したかったら上記のコードを追加すればよい。
PythonとYouTubeAPIで急上昇の動画のデータを取ってくる
### やること
YouTubeAPIで急上昇動画のURLを取ってくる。まず、GoogleCloudPlatformに行き、プロジェクトを作成して、YouTube Data v3というAPIを有効化します。「認証情報」をクリックして「認証情報」を作成を選び、「APIキー」を選択します。出てきたキーはコピーして取っておきます。
“`Python
import googleapiclient.discoverydef getYouTubeTop10():
API_KEY = “あなたのAPIキー”
youtube = googleapiclient.discovery.build(
“youtube”, “v3″, developerKey=API_KEY)
request = youtube.videos().list(
part=”snippet,contentDetails,statistics”,
chart=”mostPopular”,
maxResults=10, # ここで個数を
『サイバーセキュリティプログラミング第2版』の読書メモ (2)
ひきつづき『サイバーセキュリティプログラミング第2版』の読書メモです。
https://www.oreilly.co.jp/books/9784873119731/
# 3.4 ICMP のパース より
P62 UDP データグラムをサブネット全体に送信する Python コードについてのメモ
udp_sender 関数を抜粋
“`python
import ipaddress# スキャン対象のサブネット
SUBNET = ‘192.168.1.0/24’# ICMP レスポンスのチェック用マジック文字列
MESSAGE = ‘PYTHONRULES’# マジック文字列を含んだ UDP ダイアグラムをサブネット全体に送信
def udp_sender ():
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sender:
for ip in ipaddress.ip_network(SUBNET).hosts():
sender.sendto(byte
お客様の中に24時間監視体制で調子の悪いwimaxを再起動できるエンジニアの方はいらっしゃいませんか!!!
# 結論
[このリポジトリ](https://github.com/Mkamono/wimax-restart)をcloneして、`.env`ファイルに`WIMAXPASS=あなたのクイック設定webのパスワード`を書いて`docker-compose up`すればできるよ# はじめに
一ヶ月ほど前からうちのwimax home L12 の調子が悪く、どうも困っていました。
症状としては、LEDランプは正常を示しているがインターネットにはつながらない。しかしスマホやPCからは接続しているという表記になっている。「インターネットなし」との文言が出る、といったものです。
恒常的にこんな感じなのであればすぐサポート連絡なりして強く訴えられるんですが、2日に一回程度、再起動すれば治るといった頻度で対応してもらえるのか、そして今後ファームウェアの更新で直るんじゃないかと思い、とりあえずプログラムを書いてみました。このプログラムは問題の対処と同時に原因究明を目的にしているので、データの解析もできるようにしています。(現在データ収集中)# フォルダ構成
“`
.
├─docker-comp
PythonでSpeechRecognitionを使ってリアルタイム文字起こし【Windows】
# 概要
GoogleのSpeechRecognitionというライブラリを使ってリアルタイム文字起こしをしました。
用途としてはリモート会議や授業での音声をリアルタイム文字起こしして、議事録作成やメモの省力化などに使えると思います。## 利用するライブラリ
– リアルタイムで文字起こしするライブラリ:SpeechRecognition
– パソコンからの音声出力をキャッチするライブラリ:PyAudio“`
wave
time
datetime
speech_recognition
pyaudio
“`### ライブラリの入れ方
“`pip install SpeechRecognition“`で入れられます。
注意点は、ライブラリのインストールの時とインポートする時とでスペルの大文字小文字が異なる点です。
– インストールの時:大文字小文字で”_”が不要:“`SpeechRecognition“`
– インポートの時:全部小文字で”_”が必要:“`speech_recognition“`### デバイスから出力される音声を使えるようにするための下
40代おっさんFastAPIを勉強する
## 本記事について
この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。## getでFastAPIを動かす
“`python
from fastapi import FastAPIapp = FastAPI()
@app.get(“/”) # getで / にアクセスがあったら下の関数を実行
async def index(): # asyncで非同期処理を実装できる
return {“message”: “利樹大好き”}
“`サーバー起動(main.py)
“`bash
uvicorn main:app –reload
“`{“message”:”利樹大好き”}
となっていれば成功
local hostに`/docs`をつけると
ドキュメントが見られる。
Swagger UIが使われている。
FastAPIはSwagger UIを自動生成している。local hostに`/redoc`をつけると
redocベースの
Pythonで祝日を判定
#### 0.初めに
国内株などに投資をしていると平日だけ実行したいプログラムが思い浮かぶ。
Windows10 のタスクスケジューラは祝日に実行しない設定が存在しない。
そこで祝日のみをピンポイントで弾く必要性を感じた。#### 1.jpholidayをインストールする
コマンドプロンプトで
`pip install jpholiday`
を入力#### 2.サンプルプログラム
holiday.pyは祝日のとき終了するプログラム
exit()の下に(インデントを戻して)実施したいプログラムを記述すればよい
“`python:holiday.py
import datetime
import jpholidayif jpholiday.is_holiday(datetime.date.today()):
print(“Today is a holiday, so this program will not work.”)
exit()
“`
PyQt6Creatorにて作成した.uiファイルを.pyファイルへ変換
# 環境
* Windows 10 Pro
* Python 3.1.0
* Qt Creator 8.0.2
* Pyside6 6.4.0
* PyQt6 6.4.0
* Qt6 6.4.0
コマンドで以下を入力
“`command:Qt6
uic -g python form.ui > ui_form.py
“`
“`command:Pyside6
pyside6-uic form.ui > ui_form.py
“`
“`command:PyQt6
pyuic6 form.ui > ui_form.py
“`
どれも同じ結果になります。
formの部分は各々のファイル名に書き直してください。
忘れたときにどうぞ。# 参考ページ
* https://doc.qt.io/qt-6/uic.html
* https://doc.qt.io/qt-6/designer-using-a-ui-file-python.html
[Django]settings.pyでよく見るパラメータまとめのメモ
# はじめに
業務でDjangoを使っているのですが、
あまり設定ファイルをいじることがないので、この際パラメータにどんなものがあるか調べてみました。
大体は名前から意味が予測つくようになっていると思いますが、注意点なども含めて書き残しておきたいと思います。# デフォルトで存在するパラメータ
## BASE_DIR
・プロジェクトの基となるフォルダ
・`django-admin startproject projects-name`で作成したプロジェクトの一番上位のフォルダ
## SECRET_KEY
・Django のインストールごとに設定される個別の秘密鍵
・暗号化やハッシュ化で用いられる秘密鍵であり、Djangoプロジェクト作成時にランダムに生成される
## DEBUG
・本番環境では必ずFalse
・開発環境でデバッグが必要な時にTrueにしておく。エラーが起きたときに、詳細なエラー画面を表示してくれる。ただしKEYやPASSなどの重要情報はセキュリティのため表示されないようになっている。
・実行したクエリを全て記憶しておくので、メモリへの負荷は高い
## ALLIWED_
VSCodeにてDocker(CentOS7)のFlask環境を構築(venv使用)
# 環境
macOS Monterey
VSCode 1.73.0
docker desktop 4.13.1
docker Engine 20.10.20
docker Compose v2.12.1
Python 3.9.15
Flask 2.2.2# DockerにてCentOS7立ち上げ
Dockerインストール
https://qiita.com/suzukiti/items/391bfce352ba94ad3f0d#docker%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%ABなんか以前自分が書いたみたいでした。
VSCodeのDev containers拡張機能を使います。(これも上の記事に書いてあった)## コード(結論)
“`json:devcontainer.json
{
“name”: “sample_flask_app”,
“dockerComposeFile”: [“./docker-compose.yml”],
“service”: “app”,
“workspac
Deep Learning from scratch 2にBahdanau Attention
RNN (GRU) を使った Attention 付きの seq2seq モデルのニューラルネットワークについてです(実行確認済のソースコード有)。この記事に掲載するソースは、斎藤康毅さんの書いた「ゼロから作る Deep Learning 2 自然言語処理編」の第8章で提示されたソースにクラスを付け加えて、Bahdanau attention を使えるようにするものです。斎藤さんも、Attention については、いろいろな方法があると著書で書かれています。その一つのバリエーションです。Bahdanau attention については、tensorflow のページ
https://tensorflow.classcat.com/2019/04/07/tf20-alpha-tutorials-sequences-nmt-with-attention/
で使われているものを勉強して実装しました。
付け加えるクラスは
- AttentionSeq2seq2 クラス
- AttentionEncoder2 クラス
- AttentionDe
DataFlowのパイプラインでCerberusの機能を使って、csvをチェックしてみた。
# はじめに
現在業務でGCPのDataFlowを使ってデータパイプラインを構築しており、CSVファイルがアプリケーションから来るのですが、たまにユーザが手で直したりなんてことがあるので、バリデーションして、不適当な行があれば省いて、後続のデータパイプラインに流したいと思っています。(上流の運用なおしたいのはやまやまですが。。。)
そこでCerberusというバリデーションライブラリがあったので、いっちょやってみようと思った次第です。# Cerberusとは
Pythonのデータ検証用のライブラリで
「Cerberusは、強力でありながらシンプルで軽量なデータ検証機能をすぐに提供し、簡単に拡張できるように設計されているため、カスタム検証が可能です。依存関係はなく、Python 2.7から3.8、PyPyおよびPyPy3まで徹底的にテストされています。」とのこと
(引用元https://docs.python-cerberus.org/en/stable/index.html)簡単に機能と使い方を説明すると、データとチェック用のファイルを比較して、OK/NGを判断してくれます。
ubuntuでtkinterが使えなくなった(泣)
## はじめに
初カキコども
Ze;roPです〜
最近pythonにお熱で難しいことはよくわからないけど、適当にツール作って遊んではそれを仕事で活かしたりして遊んでます。
さて、コマンドラインツールやマクロのようなものばかり作っていて、ちょっとユーザーに優しい感じのツールも作れたらいいかも〜って思ってtkinterを使おうとインストールして、リファレンスのhello worldを実行しようとした矢先、それは起きました。。。
## 突然のエラー
“`
$ python3 -m tkinter
Traceback (most recent call last):
File “/home/USER/.pyenv/versions/3.10.7/lib/python3.10/runpy.py”, line 187, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File “/home/USER/.pyenv/versions/3.10.
【OpenCV】2つの画像の類似点の座標(X,Y)をndarray形式の変数に格納する【Python】
[参考文献:opencv画像をマッチングする](https://wonderfuru.com/opencv%E3%81%A7%E7%94%BB%E5%83%8F%E3%83%9E%E3%83%83%E3%83%81%E3%83%B3%E3%82%B0%E3%82%92%E3%81%99%E3%82%8B/)
# はじめに
[前回のQiitaの記事](https://qiita.com/matttchan/items/0bf30b808b267222d881)ではAkazaのおかげで特徴点マッチングを実現することができた。今回は、その特徴点の座標を取得し、より数学的に画像を扱えるように加工していく。**P.S.この記事はやや深夜テンションで執筆しているので読み進めると気分を害されるかもしれません。耐えてください。**
# 環境
OS : Ubuntu 20.04 LTS (最新バージョンも対応してるかも)
Python : 3.8.10
OpenCV-Python : 4.6.0# きらきら復習たいーむ
## Pythonの文法覚えてるかなチェック
最終的にaの変数はどうなるか