Python関連のことを調べてみた2022年09月17日

Python関連のことを調べてみた2022年09月17日
目次

【強化学習】PlaNetを解説・実装

この記事は自作している強化学習フレームワーク [SimpleDistributedRL](https://qiita.com/pocokhc/items/a2f1ba993c79fdbd4b4d) の解説記事です。

前:[World Models](https://qiita.com/pocokhc/items/912667ef2bbd3f82aa87)
次:

世界(World)の次は星(Planet)ですね。

# モデルベース強化学習

強化学習は環境をブラックボックスと見るモデルフリーな手法と、ホワイトボックスと見るモデルベースな手法に分かれます。
もし環境が分かっているならば、エージェントは AlphaZero のように長期的な未来を予想し、より慎重にアクションを選択できます。

モデルベース強化学習は、モデルベースな学習を実現するために実環境の振る舞いをエージェントに学習させ、その振る舞いを元にアクションを決定する手法です。[^1]

[^1]: AlphaZeroみたいに、近似モデルの学習を省いて直接環境を与える場合もモデルベース強化学習と言うような気がします。

!

元記事を表示

pycaret→LightGBMのツリー構造可視化

# 初めに
私が日常の解析でPycaretで手法選定をしていると
LightGBM、ランダムフォレストが好成績であることがしばしばある
そして、ツリー構造を調べたくなる経験が多い

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2696103/827921ef-eac1-200f-829f-5443cbcd439a.png)

# PyCaretの実行
~~~python
import numpy as np
import matplotlib.pyplot as plt
import plotly
import pandas as pd
import os
import seaborn as sns

from pycaret.regression import *
from sklearn import preprocessing,linear_model,svm,ensemble
from sklearn.model_selection import GridSearchCV
fr

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのファイル・ディレクトリ操作の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのファイル・ディレクトリ操作の比較

# Python

https://qiita.com/supersaiakujin/items/12451cd2b8315fe7d054

# Ruby

https://qiita.com/prgseek/items/38f74d99b74baa3b42f7

# PHP

https://qiita.com/daichi87gi/items/111cd922991e4a18d1ef

# Java

https://qiita.com/suema0331/items/03330a663773204afc5f

# JavaScript

https://qiita.com/turmericN/items/28e8bc8fca07285ddffc

# Perl

https://perlz

元記事を表示

BeautifulSoup4:「htmlのタグと属性が同じ複数の要素」から、その周辺の情報を使って特定の要素を抽出する

## やりたいこと

例えばhtmlファイルの中に次のような記述があったとする。

“`html:sample.html

おはよう

こんにちは

こんばんは


“`

この中から、「昼」を検索キーとして対応するp要素、“

こんにちは

“を抽出したい。

## 解決策

以下のように“

“要素を抽出した後に、“find_next“関数で、条件を指定して検索すればOK。
ちなみに“find_previous“は対象要素よりも前の要素を検索する。

“`python
from bs4 import BeautifulSoup

with open(“sample.html”, “r”) as f:
text = f.read()
soup = BeautifulSoup(text

元記事を表示

基本情報技術者試験を2か月で取りに行く男の記録

はじめまして。ただの学生です。

遅ればせながらこの度22年度下期試験の対策を開始しましたので、備忘録も兼ねていくらか投稿していくことにしました。

プログラミング知識はほぼゼロ!なので主に午後試験の対策を書いていくことになると思います。
(ゼミでR、それ以外はC#やPythonを触ったことがある程度です。Progateの初学者コースだけやったみたいなイメージ。)

出来るだけ毎日、学んだことを挙げていければいいなと思ってます。

初投稿なので細かい話はナシにして、とりあえず使用文献を紹介します。


午前試験対策

・イメージ&クレバー方式でよくわかる 栢木先生の基本情報技術者教室(技術評論社)
 ∟おすすめ書籍としてよく上がっていたので購入。好きなのでいいと思う。
・基本情報技術者過去問道場(基本情報技術者試験ドットコム
 ∟Webで手軽に演習できる!
午後試験対策
・うか

元記事を表示

画像から深度を推定するMiDaS

# 画像から深度マップを取得したい

特別なカメラやセンサーやステレオ画像なしで、シンプルに一枚の画像から深度マップを得たい。

# Monocular Depth Estimation で取得できる。
Monocular Depth Estimation機械学習モデルMiDaSで、単一画像から深度を取得できる。

https://github.com/isl-org/MiDaS

![pexels-cottonbro-6853517.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/5e64b551-b128-f130-0d4e-fd85c3488ce7.jpeg) ![r (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/cc212b86-376c-2d70-cd84-d93967fbb353.png)
モデルの初期化。

“`python
import torch
model_type

元記事を表示

京大生協の食堂の最適解

# はじめに

京都大学の生協食堂には「ミール」というシステムがあります。

このシステムは、簡単に言うと学食版の定期のようなものです。
年度初めに1年間の食堂代としてお金を払っておくことで、1食550円分はお金を払わずに利用できるシステムです。4月から一人暮らしをする大学生を持つ親からすれば、万が一お金がなくても食堂にいけば、栄養のある料理を食べることができるので、親にお金を払ってもらって利用している人も多いです。

しかし、授業がない平日や土曜日、夏休みなどの大学に来る必要がない日でも食堂を利用し続けないと、ほぼ元が取れないという落とし穴もあります。(余った分は年度末に繰り越ししたり手数料数百円を差し引いて返金してもらうこともできます。)
反対に、毎日食堂を利用し続けると、最初に払った分より多くの利用することができるので、ミールで得をするために休みの日も食堂を利用する人のことを京大では「ミール奴隷」と呼んだりします。

このミールは1食550円が限度になっているのですが、このことから、「食堂では550円で栄養的に満足な食事が取れるようになっています」ということをミールを

元記事を表示

YouTubeのピアノ演奏動画の全自動採譜(MIDI化)

# はじめに
_YouTube_ には沢山のピアノ演奏動画が上がっているかと思います。

ま○しぃさんとか、よみ○さんとか、事務員○さん、けいちゃ○さんなどが有名ですかね。
海外勢だとAni○enzさんが凄く凄いです(語彙力

この人達みたいにピアノを弾きたい!…は無理でも真似事がしたいですよね。
そうです楽譜…楽譜があれば、 _MIDI_ ファイルがあれば!

そこで、 _YouTube_ のチャンネルを指定することで、そのチャンネルに上がっている演奏動画を一括 _MIDI_ ファイルに変換する便利な道具を作成しました。
(~~著作権とか色々怪しそうなので公開はしません…許して)~~

# 内容

## フロー図
大まかな流れを図にしました。
![9974aa20bef20004b0980bc6903a91a4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/279482/30f89dfc-ce97-dc9b-9b5c-8822c69a8e21.png)

## 流れの説明
1\. _you

元記事を表示

画像のグレースケール化とマスク処理

### はじめに
画像認識をする機械学習のモデルを自分で作ってみようと思い、その下準備として学習する画像を加工するスクリプトを書きました。

実施する内容は以下
・画像をグレースケールにして色の特徴を消す。
・画像上の画像認識に使用しない領域にマスク処理をする。

準備するもの
・マスクしたい箇所を黒で塗りつぶした画像(mask_file.jpg)

### やったこと

「C:\\XXXXXX\\XXXXXX\\」の下に加工したい画像を置いて、スクリプトを実行すると、
「C:\\YYYYYY\\YYYYYY\\」の下に加工後のファイルを出力します。
マスクファイルは「C:\\ZZZZZZ\\ZZZZZZ\\mask_file.jpg」に置きます。
パスは実行する環境に合わせて記載してください。

“` python
impo

元記事を表示

感情分析のやり方が7割わかるようになる記事(初心者向け)(ソースコードあり)(GiNZA)

こんにちにゃんです。
水色桜(みずいろさくら)です。
GiNZAに関する記事4本目です。
この記事では感情分析について書いていきます。
まず感情分析とは何かということから説明していきます。
感情分析は、AIがテキストや音声から人間の気持ちや意図を読み取ることを言います。
たとえば、「やったー。テストでいい点が取れた!」という文があったときに、プラスの感情もしくは喜びの感情を出力するような感じです。

感情分析の手法は大きく分けて2つあります。
1つ目はルールベースのアプローチです。
ルールベースのアプローチは前持って定義されたルールを用いて感情分析をする手法です。例えば、あらかじめ単語ごとに何の感情が含まれているかという「辞書」を作製しておいて、その辞書を用いて感情分析を行います。機械学習が不要のため、手軽に感情分析が行え、処理が軽いというメリットがありますが、「辞書」を用いて行う手法ゆえ文脈を考慮するのが苦手です。皮肉などがある場合もうまく分析を行うことができません。

2つ目は機械学習によるアプローチです。
機械学習による感情分析は文脈を考慮したり、皮肉などの直接的でない表現を分析

元記事を表示

vscode+wslでpython/blackの有効化

# 前提

– vscode+wsl連携済みであること
– wslでpython3.8以上がインストールされていること(blackの動作要件)

# 結論

– vscodeがwslと連携した状態にする
– vscode左下の接続の表示が、WSL: Ubuntuとなっている状態
– なっていない場合、左下の接続マークをクリックし、wslでフォルダを開き直す
– vscodeにpython拡張機能(microsoft製)をインストール
– vscodeにblack拡張機能(microsoft製)をインストール
– setting.jsonに以下設定

“`
“[python]”: {
“editor.defaultFormatter”: “ms-python.black-formatter”,
“editor.formatOnSave”: true
}
“`

# 不要なもの

– wsl側のpythonが利用されるのでwindows側にpythonはインストール不要
– wsl側にblackのインストールは不要

元記事を表示

Pythonでディレクトリを読み込んで階層をJSON化。Directory to json with Python.

## Pythonでディレクトリを読み込んで階層をJSON化
## Directory to json with Python.

このような構造のディレクトリを読み込んで、
“`
D:\DIR
│ file01.txt
│ file02.txt

├─dir01
│ │ file01.txt
│ │ file02.txt
│ │ file03.txt
│ │
│ └─dir01
│ file01.txt

└─dir02
file01.txt
file02.txt
“`
以下のようなJSONにします。
“`json:json
[
{
“label”: “dir01”,
“path”: “D:\\dir\\dir01”,
“children”: [
{
“label”: “dir01”,
“path”: “D:\\dir\\dir01\\dir01”,

元記事を表示

日大文系卒が学び実装する画像認識

## 初めに
ここ最近ずっとディープラーニングでの画像認識の学習をしておりました。
その成果物/学習過程で作成したipynbファイルをシェア致します。
勿論忘備録/データ格納が主ですが、なかなかどうして初心者にも分かりやすい内容になっているのではないかと思います。

– 気軽にダウンロードして実行できる。
– 実装して確認できるのでイメージを掴みやすい。理論は他を当たって頂ければ…
– 至る所に私のメモがあります。是非ご参考に。(ダークソウル並みにあります)

結果的には実装メインになってしまったので理論は他で補っていだたければと思います。

## 前提知識
– pythonの基礎。
– ディープラーニングの大雑把な概要。
– 機械学習の簡単な経験やイメージ。 

その他諸々前提知識は私の気まぐれで更新します。

`畳み込みとDenceの簡単な違い。
`
共通部分:どちらも同じディープラーニングの手法。

多層パーセプトロン
こんなやつ。Denceが特徴。

“`python
model.add(Dense(un

元記事を表示

Pipenvの仮想環境内でChaliceを使用する際に遭遇した依存関係エラー

# はじめに
今回、Chaliceで開発している他のメンバーからPipfileをもらい、自身のローカルで同様の環境を作成して、Chaliceでデプロイするにあたりエラーに遭遇したため、その解決についてまとめます。

# 説明しないこと
使用するリポジトリの内容

# 環境
– macOS Monterey 12.3
– AWS認証情報(アクセスキーとシークレットキー)は、ローカルに設定済み
– インストール済み
– Chalice 1.23
– Python 3.8

# Pipenvについて
Pipenvは、仮想環境の管理と、Pipのようなパッケージ管理の機能を持ちます。

PipfileとPipfile.lockを利用することにより、パッケージ管理を行うことができます。

– Pipfile:要求されたパッケージの一覧などが記録されるファイル
– Pipfile.lock:実際にインストールされるパッケージの依存関係などが記録されるファイル

npmでいうところの`package.json`、`package-lock.json`と似てますね

`pipenv insta

元記事を表示

OR-ToolsのAddBoolOrの使い方(シフトスケジュール問題の制約条件の実装)

# 内容
– AddBoolOrメソッドによる制約条件の実装の例を紹介しています。OR-Toolsのサンプルコードとして紹介されている、[シフトスケジュール問題を解くプログラム](https://github.com/google/or-tools/blob/master/examples/python/shift_scheduling_sat.py)を題材としています。
– 備忘のため、Googleの数理最適化ツール[OR-Tools](https://developers.google.com/optimization)の、cp_modelモジュールのCpModelクラスの[AddBoolOrメソッド](https://developers.google.com/optimization/reference/python/sat/python/cp_model#addboolor)の使い方を、簡単にまとめてみました。
– OR-Toolsのエキスパートの方には少々退屈な内容かもしれません。初心者の方であれば、参考になるかもしれません。

# 注意事項
– 当方、OR-Toolsの

元記事を表示

強化学習(PPO)での各種Atari2600ゲーム攻略

# はじめに

本記事では、強化学習の研究でスタンダードになっているAtari2600のゲーム攻略について、筆者が行った実験の内容を記す。
Google Colabで動作するコードを公開する他、多くのゲームについて実際に学習させたAIがプレイしている動画を閲覧できるようにしてある。この手の記事は結構あるのだが、ここまで対象となるゲーム数の多い記事はあまりないのではないかと思う。

# 実装について

PPOを自前で実装して学習を行った。自作すると間違った実装になるリスクが大きいが、これは筆者が自分で仕組みを理解するための選択なので、この辺のリスクを避けたい場合は[Stable Baselines](https://github.com/hill-a/stable-baselines)等を使った方が良いだろう。実験の結果、論文と同等の性能が出ているようなので、今回の実装に大きな問題は無いと思う。

PPOの解説はすでにネット上に複数あるので、ここでは行わない。[こちらの記事](https://horomary.hatenablog.com/entry/2020/10/18/225833

元記事を表示

【備忘録】M1 Mac PCのPythonがごちゃごちゃになったので整理した

一年前に購入したM1 Macに、ちゃんと理解せず、とりあえず今まで使っていたHomebrewを入れました。
その後、何かエラーが出る度に、何か入れたり(理解しろ)、何か消したり(理解してないのに消すな)、修正したりして、意味もなくPythonとPython3の両方が存在していたので、整理することにしました。

参考にさせてもらった記事をブックマークする忘備録です。
超初級者向け。

状況

Pythonが2つ入っていた。PythonとPython3。
使用頻度はPython3のみ。ちなみに業務ではあまり使わず、仕事でちょっとした自動化をしたり、趣味で勉強しています。

参考にした記事①

/etc/paths でパスの優先度が変えられるとかそう言うことも全然知りませんでした。わたしってば本当アホ。

https://skume.net/entry/2022/01/19/060000

よし、これでHomebrewのPython3が優先で使われるぞー!と思って.pyを動かしたらこけた。.pyで使っていたpandasがないって言われました。なぜ

元記事を表示

GiNZA入門3(基本操作編2、チャットボット作成編)(基本的な使い方マスターを目指す方向け)

こんにちにゃんです。
GiNZAに関する記事3本目です。
この記事では固有表現抽出と類似度計算、簡単なチャットボット作成について書いていこうと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2847349/77c431e2-e111-7968-fa84-51f8ec740471.png)
GiNZAで出来ること4つ目は固有表現抽出です。固有表現は固有名詞や人名のことです。

“`ruby:ent.py
#④固有表現抽出
doc=nlp(‘今日は銀座で花さんと買い物をした。’)
for ent in doc.ents: #固有表現(エンティティ)群から固有表現を一つずつ抽出
print(
ent.text+’, ‘+ #固有表現
ent.label_+’, ‘+ #固有表現の種類
str(ent.start_char)+’, ‘+ #開始位置
str(ent.end_char) #終了位置

元記事を表示

VPSに検索系Djangoアプリをデプロイしたらタイムアウトしたので修正した際のメモ

Conoha VPSにDjangoアプリをデプロイしました。
デプロイするにあたって参考にした記事はこちらです。

https://blog.codecamp.jp/django-release-basic

こちらの記事に沿って順に設定を行ったところデプロイはできたものの、
502 Bad Gateway
が発生しました。

エラーログを確認します。

“`
vi /var/log/nginx/error.log
“`

エラーログを確認すると、

“`
2022/09/05 16:09:21 [error] 906#906: *575 upstream prematurely closed connection while reading response header from upstream,…
“`

のエラーが出ていたのと、検索件数を少なくした場合に発生しなかったため、タイムアウトしているらしいということがわかりました。
タイムアウトの設定を追加する方法を確認します。

## nginx
### nginxの設定
“`
/etc/nginx/nginx.co

元記事を表示

Radiko Jukebox製作記(Raspberry Pi)

# はじめに

Raspberry Pi Zero W を使ってradikoを再生するだけの専用機を作ったのでその時の奮闘記をまとめてみました。

Raspberry PiでのプログラミングよりもAutodesk Fusion 360での3Dモデリングとジュークボックスの箱を作ることに時間を割いたのでQiitaの投稿としてはあんまりふさわしくないのかもしれないなと思いつつも電子工作や3Dモデリングに興味を持ってくれる人もいるかもしれないと思い、また自分の記憶を書き留めておきたかったということもあり記事にしてみました。誰かのご参考になれば。

なお、今回の製作は業務ではなく完全なるプライベートな時間でやったものです。

# 使用した主な技術・部品

– Raspberry Pi Zero W + Raspberry Pi OS(bullseye)
– Arduino Nano
– Autodesk Fusion 360 (3Dモデリング)
– レーザーカッター

# 作った動機

今回の作品を作るにあたっては以下の動機がありました。

– 社内メイカースペース(KM1)ユーザーの展示会と

元記事を表示

OTHERカテゴリの最新記事