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

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

Pytorchモデル(AnimeGAN2)をONNXにエクスポートする

# AnimeGAN2をエクスポートします
![68747470733a2f2f63616d6f2e716969746175736572636f6e74656e742e636f6d2f373461303262366530623830653532633261653361663739386339336565613961613365333934642f363837343734373037333361326632663731363936393734363132643639366436313637363532643733373436.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/4032b2f8-cdd2-036a-5d11-5685b4462bf3.png)

![68747470733a2f2f63616d6f2e716969746175736572636f6e74656e742e636f6d2f33313133343964613437313336666639636536313730316430

元記事を表示

生産現場IoTへの挑戦 #08.5 ~オートフォーカスUSBカメラをマニュアルフォーカスで使う~

# 1.はじめに
この記事は、[「生産現場IoTへの挑戦 #08 ~Raspberry PiとUSBカメラで外観検査装置を作る 前編~」
](https://qiita.com/airpocket/items/493fd7fffdf2604f6c4c)の補足記事です。
opencvによる画像処理を行うにあたり、オートフォーカスカメラでは意図せぬピンボケや、フォーカシング時間のロスを避ける可能性があったためマニュアルフォーカスカメラが必要として記事に書きました。しかしながらv4l2の機能をよく調べるとフォーカスをマニュアルコントロールできることが判った為テストしてみた記録です。
opencvやv4l2のインストールやRaspberry PiのOSなどについては[「生産現場IoTへの挑戦 #08」](https://qiita.com/airpocket/items/493fd7fffdf2604f6c4c)を参照してください。

# 2.結論
結果として、今回使用したオートフォーカス機能付きUSBカメラのフォーカスをマニュアルコントロールできました。最短焦点距離は約10mmとかなり優秀で

元記事を表示

CloudWatch Logsがもっと簡単にDLできたらいいのに…と思った方へ(スクリプト付き)

# はじめに

**CloudWatch Logs をサクッとダウンロードしたいと思ったことありませんか?**

CloudWatch Logs をファイルとしてダウンロードするには、

1. CloudWatch Logs から S3 にエクスポート
2. S3 からファイルをダウンロード

という手順を踏まなければなりません。

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/S3Export.html

これ、地味に面倒じゃないですか? → **私は面倒ですw**

というわけで、CloudWatch Logs(特定のログストリーム)を簡単にファイル出力するスクリプトを作ってみました。

# Pythonスクリプト

Python と AWS SDK (boto3) で作りました。

“`python:download_logs.py
#!/usr/bin/env python3

import argparse
import boto3
import re
import traceback
fro

元記事を表示

ラズパイの湿度、温度、気圧データをSpread sheetへ出力する。

ラズパイの湿度、温度、気圧データを取得し、spread sheetへ出力するまでをまとめてみました。
pread sheetは、google driveに置いています。

# 環境
Python version:3.9.7
OS: windows: 10.0
Linux raspberrypi: 5.10.63+

# プログラムの実行イメージ
ラズパイからgoogle driveにspread sheetを作成するまでの下準備は、下記にまとめたので参照してください。
[ラズパイからGoogle DriveへGoogle Spread Sheetを作成してみた。](https://qiita.com/yutaka_m/items/0fffcfaf319dce244b27)

プログラムは、1分毎にラズパイのデータをspread sheetへ書き込みします。google drive内で操作しているフローチャートは、下記のようにしています。spread sheetがあるかどうかを確認し、なければ新規ファイルを作成し、header部分の書き込みあを行います。存在していれば、そのステップは、省

元記事を表示

PythonでbitbankのOHLCV(ローソク足+出来高)を取得する

はじめに

bitbankのOHLCVデータを取得するコードです。バックテスト等にご活用ください。
取引所から日付毎のデータを連続取得するので、長期間のデータを取得する際はサーバへの過度な負荷に気をつけて下さい。

コード

“`python
from datetime import datetime
from datetime import timedelta

import pandas as pd
import requests

# 通貨ペアを指定
pair = ‘btc_jpy’
# 時間足を指定
duration = ‘5min’
# 取得開始の日付を指定
start_day_str = ‘2022/03/01’
# 取得終了の日付を指定
last_day_str = ‘2022/03/06’

date = datetime.strptime(start_day_str, ‘%Y/%m/%d’)
last_day = datetime.strptime(last_day_str, ‘%Y/%m/%d’)
ohlcvs = []

元記事を表示

実験プログラム製作で気になった点をまとめてみた

# (はじめに)備忘録です
oTreeの実験プログラムを作っていると,よく分からないことがたくさん出てくると思います.今回はその中でも,公式ドキュメントを見たり,人のブログをみたりするなかで,私が個人的に気になった点をまとめています.
誰かのお役に立てるのであれば幸いです.また,間違っているところがありましたら,指摘していただけると嬉しいです.

## 実験プログラムを作るのに使うべきソフトは?
PyCharm,VS Code, Atomなど,世の中にはたくさんのソフトがあります.この中で,一番便利で汎用性があると私が考えるのはVS Codeこと,**Visual Studio Code**です.

https://azure.microsoft.com/ja-jp/products/visual-studio-code/

拡張機能を追加することによって,Pythonだけでなく様々な言語のファイルを扱うことができるのが特徴です.基本的に,これがあれば他のソフトはいらないと思います.

## requirements.txtって必要なの?
:::note info
自分のパソコンや「V

元記事を表示

機械学習エンジニアに爆速でなるための教材集

# 0. はじめに

昨今のAI、DXブームの影響で、**機械学習、深層学習(ディープラーニング, Deep Learning)** への注目は増すばかりですが、初学者の方にとって機械学習を学ぶハードルは依然高い状態かと思います。
機械学習、特にディープラーニングを習得するには学ぶべきことが多く、また分野によっては難易度が高いということもあり、学んでいる途中で挫折してしまうという人も多いという印象があります。

そこで本記事では、これから機械学習を学びたい方が自学自習する際の助けになるようにと、有用な自習コンテンツをまとめました。

本記事では、機械学習エンジニアとして実務に参画できるレベルを目指して、コンテンツを収集しました。よって機械学習の理論やライブラリに加え、社会実装する上で付随して必要となるソフトウェアエンジニアリングのスキルも含めています。
コンテンツについては、適宜追記していく予定です。

## 対象読者

**これから機械学習を学びたいと考えているすべての方。**

完全に初心者の方もこの記事で紹介しているコンテンツを実際に手を動かし取り組み、理解することで、機械学習エ

元記事を表示

venvを使ってみる【Python】

# やりたいこと
– Pythonで仮想環境を作るためのvenvを使ってみる。
– venvで作成した仮想環境に、とりあえずpytestをインストールするところまでやってみる。

# 環境
– macOS monterey 12.2.1
※macとwinで結構コマンドが違うようなので、winの方はこの記事は参考にしないでください。

# venvとは
– Pythonの仮想環境を作り出すツール。
– 仮想環境作成は元来「virtualenv」がその役割を担っていたが、Python3.3より、公式でこのツールが提供された。

# 手順
– 前準備
– 仮想環境を使用したいプロジェクトに移動しておく。
– 「仮想環境のPythonバージョン=ローカルのPythonバージョン」となるので、特定のPythonバージョンを仮想環境にて使用したい場合、ローカルのPythonのバージョンをそちらのバージョンに切り替えておく。(pyenvなどで)
– 仮想環境作成後にPythonのバージョンを切り替えたいときは[こちら](https://dev.classmethod.

元記事を表示

“Line Notify”を利用してPythonでLineに通知を送る

はじめに

仮想通貨自動取引botの取引状況をスマホに通知する際に利用させて頂いてます。
botを作成するたびに過去のコードからコピペしていたので、今回備忘録としてこちらにまとめました。

実装する前に

こちらでトークンを発行して下さい。

https://notify-bot.line.me/ja/

また今回はrequestsを利用してるので、インストールされてない場合は以下より。

“`
pip install requests
“`

テキストで通知

“`python
import requests

url = ‘https://notify-api.line.me/api/notify’

token = ‘発行したトークン’
message = ‘通知したいメッセージ’

headers = {‘Authorization’: f”Bearer {token}”}
params = {‘message’: message}

requests.post(url, headers=headers, pa

元記事を表示

突然jupyterが使えなくなったので解決方法メモ

今まで普通に作業できていたのだが、VSCodeでJupyterが使えなくなった。

環境
M1 macbook air
homebrewでインストールしたpython3.8.9

手始めに、
pip uninstall jupyterでアンストしてからpip install jupyterとした。これで一応インストールはできたのだがjupyterコマンド(jupyter notebookなど)が使えなかった。

ネットで調べているとjupyterコマンドのパスが通っていないからという記事を見つけるも、そもそもjupyterコマンドが入っていないようでパスの通しようがなかった。

結論としては

sudo -H pip3 install jupyterとしたらjupyter notebookもVSCodeでのjupyterも使えるようになったのだが理由は不明(ちなみにこちらではパスワードを要求された。)、わかり次第追記します。

今回使ったコマンド
brew list
homebrew内のリスト

echo $PATH
パス一覧を表示

which jupyter
jupyterコマ

元記事を表示

Pythonのlogging入門

## はじめに

Pythonは比較的わかりやすい言語だと思いますが、ロガー周りは少しややこしいです。
プログラムを作成する場合に、printで出力するのも問題はないのですが、ある程度の規模のプログラムを作成する場合は、ログ戦略を工夫する必要があります。
今回の記事ではプログラムでの出力をprintから少し高度なことしたいなー、という人向けの記事になります。
loggerを使う場合の注意点なども書いているので、初学者以外の方も学びがあるかもしれません。

## 前提知識:ログレベルについて

プログラムからは様々なログが出力されると思います。
通常、重要なログもあれば、そこまで重要ではないがあると嬉しいなというログもあります。
ログをある程度グループ分けして出力することで、運用時の調査がよりスムーズになるように設計することが多いです。
例えば、システムに何か問題があったときに、とりあえずエラーのログだけを絞り込んで調査したい、その時にログがグルーピングされていないと、全部のログ情報から自力でエラーログを絞り込まなければなりません。
ログレベルによってログをグルーピングすることで調査が便

元記事を表示

pythonで画面上の指定した範囲の文字列を取得する exe版

## 概要
前回作成したツール を他の人でも使えるようにexeにしてみました。
exe化にあたり毎回起動させると時間がかかってしまうので[こちら](https://qiita.com/kotai2003/items/0d6bafb753bb0374033c)を参考に複数ウィンドウを起動させるようにしました。
こうすることでスクリーンショットを取るたびにツールを起動させる手間が省けます。

## 処理の流れ
処理としては以下のようになっています。
1. スクリーンショット取得用のウィンドウを起動
1. スクリーンショットを取得後は前回と同じ処理の流れになります
1. 文字を取得後ウィンドウを閉じることで再度別のスクリーンショットを取得できます。

ソースコード全体は以下になります。
プロパティファイル使ってTesseractのパスを読み込む形にしています。実際に手元で使う際は直接指定するなどしてください。

ソースはこちら

“`python

import os
import tkinter
import pyocr
im

元記事を表示

ドラ●エのモンスター名っぽい文章生成してみる(N階マルコフ連鎖/形態素解析・超入門編)【人工無脳】

# 概要
### ちなみに
この記事に掲載しているソースコードで、小説・セリフ・記事などの文章生成(文章合成)もできます。
N階マルコフ連鎖を指定している箇所(**gi_n_markov_size**)を「1」→「3 or 4」と変更して、あとは適切な元ネタを放り込むだけです。

少ない元ネタで、セリフ増殖していく方法をいろいろ試しているので、後日、そちらも記事にできればよいと考えています。
オープンソースのチャットボット「Botpress」もアレコレ試しています。チャットボットのテスト用に、同じようなセリフを増殖させられる方法を考えています。
### 記事が長いのでアジェンダもどき
– はじめに
– モンスター名っぽいの生成してみる
– 「メタルキング」を作りたい
– マルコフ連鎖で、セリフを増殖させる件について
– ソースコード掲載
### はじめに
子どもがドラ●エに大ハマリ!
「ドラ●エに出てきそうなモンスターの名前は?」と聞かれた際、毎度、毎度、頭がそんなに上手に回転する訳がないじゃないですか。
親としてのプライドと責任があるので、チートな救世主、マルコフの連鎖のお世話にな

元記事を表示

PyCharmの相対インポートで躓いた話

初投稿です。
PyCharmを使っていて相対インポートのエラーに悩まされていたのですが、
一応解決したのでまとめておこうと思います。

※デフォルトのPyCharm設定を使用している想定です。
 既に色々変えている場合結果が異なる可能性があります。

# 更新履歴
2022/03/06 : 初版

# 環境
* Windows10
* Python3.10
* PyCharm Community Edition 2021.2.2

# 1. 状況の再現
## 1.1. プロジェクト構成
プロジェクト全体を格納するフォルダ(Root)
“`:プロジェクト構成
myproject
“`
その下にソースコードを格納する、プロジェクト名と同名のフォルダ
“`:プロジェクト構成
myproject
└ myproject
“`
メインとなるモジュール(main.py)と、
その中でインポートするモジュール(sub.py)及びパッケージ(mypackage)
パッケージの中にもファイル(func1.py, func2.py)を用意
“`:プロジェクト構成
myproject
└ m

元記事を表示

【AtCoder解説】PythonでABC242のA,B,C,D,E問題を制する!

**ABC242**の**A,B,C,D,E問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM**

元記事を表示

モンテカルロシミュレーションで出したπの評価

# やること
古典的なモンテカルロシミュレーションの訓練である、円と乱数を使ったシミュレーションでπを出して、評価する。

## モンテカルロシミュレーションとは
確率を用いて、値を推定する方法。推定とは言っても、十分に信頼できる値を手軽に出せることから、モンテカルロ法の有用性は高い。現在でも金融商品のリスク計算や統計学における数値計算などで用いられている。

## πを出す方法(条件・式)
0~1の乱数を元に、0~1のxy平面にランダムに点を打つ。**円内の点の数Pと全体の点の数Nの比**が、**円S1と平面全体S2の面積比**に対応している。
![無1題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303459/a4683035-528b-1f3e-ed49-e5682fc143f1.png)
ランダムな点が円の中に入っている様子が分かる。図の単位円は1/4されているので、面積比はS1/S2=π/4である。円内の点の検出には原点からの距離を用いた。距離が1以下の場合は変数pに1を加算する。距離は円

元記事を表示

バージョン管理、ライブラリインストール、仮想環境に関するツールの整理【Python】

# やりたいこと
Pythonで仮想環境を構築する方法、およびそれに付随する機能がいろいろあるので、それらを整理する。

#

ライブラリ名 | 役割 | 補足
— | — | —
pip | Pythonライブラリをインストールするコマンド |
pyenv | Python自体のバージョン管理 | パッケージ管理もできるようだが、専らPythonバージョン管理のために使われているようだ。
venv | 仮想環境作成 | 旧称は「pyvenv」。サードパーティ製のvirtualenvが、Python3.3より標準機能として実装されたもの。両者の使い方はほぼ一緒。(ただしvirtualenvは、仮想環境作成機能に加え、Pythonバージョン切替の機能も備わっている)
conda | (Anaconda環境下での)パッケージ管理、仮想環境作成、Pythonバージョン管理
pipenv | pip + venv | 「Pipfile」を使用する
poetry | pip + venv | 「pyproject.toml」を使用する

– まず、Anaconda環境を使うか使

元記事を表示

zoomのチャットログの余計な部分を削除して議事録として使いやすくした

### ありそうなのに見つからなかった、zoomチャット自動文章整形プログラムをとっとと作る
本日のzoom会議、良いキーワードや参考URLがチャットで流れていたので、編集して議事録つくったろ!

日時とか名前が邪魔で編集しづらいよ!

余計なところはpythonで削除じゃ!!
![2022-03-06 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565176/721a88ac-1349-5faf-9894-88b51826a7d7.png)

“`python:cleaner.py
import re
a = open(‘export.txt’, ‘w’)
with open(‘meeting_saved_chat.txt’,’r+’) as f:
for line in f:
line=re.sub(r’\d\d:\d\d:\d\d….+$’, ”, line)
line=line.lstrip()
a.write(line

元記事を表示

日記;回すだけIII ⑧ pythonでSDO、PDOの読み書き<その3 Profile Position Mode>ベータ版

 Profile Position Modeは、設定したプロファイル(加速度、等速度、減速度)に沿って、指令位置まで移動するPTP(Point to Point)制御です。位置決めに使われます。
### Profile Position Modeで使われるパラメータ
 BLV シリーズ R タイプのBLV Series R Type Driver CANopen Communication Profile「HP-5143」のProfile Position Modeでは、入力すべきパラメータの図が書かれています。
それらを読み出します。

“`python
import canopen
import time

# Start with creating a network representing one CAN bus
network = canopen.Network()

# Add some nodes with corresponding Object Dictionaries
node = canopen.BaseNode402(10,’BLVD-KRD_CANopen

元記事を表示

Magentaによるピアノ自動採譜のやり方

## はじめに

Magentaを使ってピアノ演奏の音声ファイル(wavやmp3)からmidiファイルに変換する方法を調べたので、
備忘録も兼ねて記録しておきます。

※MagentaはGoogleが開発しているアート関連の機械学習プロジェクトです。

## 方法

Magentaに含まれる「Onsets and Frames」という機能を使います。
[Onsets and Frames: Dual-Objective Piano Transcription](https://magenta.tensorflow.org/onsets-frames)

具体的な方法としては、3種類の選択肢があります。
– webアプリ
– Colab版
– ローカル環境で実行

以降、それぞれの使い方を記載します。

#### webアプリ
一番お手軽な方法。
こちらのページにアクセスし、目的の音声ファイルをアップロードするだけでmidiファイルに変換してくれます。
[PIANO SCRIBE](https://piano-scribe.glitch.me/)

#### Colab版
以下のCol

元記事を表示

OTHERカテゴリの最新記事