- 1. 2つのPyTorchモデルの重みの平均を計算する
- 2. 【Windows】Python3.10のインストール(パス通し)
- 3. AtCoder Beginner Contest 224
- 4. Python C# データ連携
- 5. オムロン環境センサ(2JCIE-BU)をラズパイで使ってみた。(6)
- 6. 文系卒が数学オリンピックをPythonで解く(2021年予選編その1)
- 7. コマンドを打つとチャンネルを作ってくれるdiscordbotをPythonで作ろう
- 8. kivyMDチュートリアル其の参什玖 Components – Snackbar篇
- 9. [ Python ] クラス変数とインスタンス変数
- 10. 【python3】jsonファイルの読み書き
- 11. オムロン環境センサ(2JCIE-BU)をラズパイで使ってみた。(5)
- 12. boto3でECSを使ってブログ開設するまでを自動化
- 13. pythonを使ってRestAPIでファイルを取得する
- 14. AOJトライに関する知識知見の記録共有 (Volume0-0040)
- 15. pip/pipenvのSSLエラーが出てハマりまくった。
- 16. pygameでテキストを中央寄せにする
- 17. 【Python】for文で辞書(dictionary)繰り返し処理
- 18. 3D姿勢推定+Unityでリアルタイム3Dトラッキングするシステムについて現状まとめ
- 19. ラズパイで消費電力を取得する(1)
- 20. Raspberry Pi 上で UART通信をする Pthon環境で プログラム
2つのPyTorchモデルの重みの平均を計算する
# はじめに
PyTorchの2つの機械学習モデルの重みを平均してみました。モデルの`state_dict`を取得することで、パラメータに直接計算を加えることができます。
# 環境
* Python 3.9.5
* torch 1.9.0+cu111
* torchvision 0.10.0+cu111# 準備
モデル同士の足し算と、モデルの定数倍を行う関数を定義。### モデル同士の足し算
“`Python:sum_model.py
def sum_model_params(modelA, modelB):
“”” modelA + modelB “””
sdA = modelA.state_dict()
sdB = modelB.state_dict()
for key in sdA:
sdB[key] = (sdB[key] + sdA[key])
modelB.load_state_dict(sdB)
return modelB
“`### モデルの定数倍
“`Python:milti_
【Windows】Python3.10のインストール(パス通し)
## はじめに
2021年 10 月上旬からPython3.10が使用可能になってます。
長らくPython3.9を使用していました。しかし、新しいバーションにも
対応したいということで、最新版をインストールする流れになりました。その時のメモ書きです。
## ダウンロード&インストール
Pythonをインストールするために適当にググります。
「Download Python」でもいいのですが、
「Windows版Pythonのインストール:Python環境構築ガイド」が分かりやすかったです。![ググる](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577794/1b261c1f-bfac-bcbf-fcd0-fab3602dbdd5.png)
https://www.python.jp/install/windows/install.html
解説が画像付きで非常に分かりやすく、簡単にインストールできます。
善きかな。ちなみに、インストールの説明で「パスを通す設定にすること」が強調されてい
AtCoder Beginner Contest 224
##[A – Tires](https://atcoder.jp/contests/abc224/tasks/abc224_a)
O(1)
“`C++:C++
#include#define rep(i,n) for(int i=0; i<(n); ++i) #define fixed_setprecision(n) fixed << setprecision((n)) #define execution_time(ti) printf("Execution Time: %.4lf sec\n", 1.0 * (clock() - ti) / CLOCKS_PER_SEC); #define pai 3.1415926535897932384 #define NUM_MAX 2e18 #define NUM_MIN -1e9 using namespace std; using ll = long long; using P = pair
;
templateinline bool chmax(T& a
Python C# データ連携
こんにちは、本日はPythonとC#間でデータのやり取りをする方法を紹介します。
使用する技術は「共有メモリ」です。## 動作の仕組み
1. Pythonで名前付き共有メモリの作成
2. C#でPythonで作成した共有メモリを開く
3. 相互にデータの読み書きを実施## 環境
**Windows10**
※名前付き共有メモリを利用するにはWindowsOSを利用する必要があります。pythonでの名前付き共有メモリはWindowsでしか利用できません。。。
「tagname」の引数が共有メモリの名前です。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586845/8a76893d-5bc1-5172-7fda-8908e7e27605.png)
Linux、Macなどでは無名の共有メモリを利用するか、
ファイルベースの共有メモリを利用するしかできません。## ソースコード
今回のプログラムはPythonで共有メモリの1WORD目の値をインクリメントしてい
オムロン環境センサ(2JCIE-BU)をラズパイで使ってみた。(6)
音声合成ができたので、流れで音声認識もやっていきます。
今回はオープンソースのJuliusを使っていきます。
https://julius.osdn.jp/index.php
# USBマイクの接続
今回使うのは、こんなマイクです。
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28184/36fa5067-b8d9-447d-d068-7e4606312f47.png)|
|:-:|Amazonで、599円でした。
マイクを認識しているかの確認
“`shell-session:マイク未接続
pi@raspberrypi:~ $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0590:00d4 Omron Corp.
Bus 001
文系卒が数学オリンピックをPythonで解く(2021年予選編その1)
#これまでのあらすじ
– 文系卒の私。でも数学になじみたい。
– ふむふむ、数学オリンピックというのがあるらしい。やってみますか。
– 紙とペンを使ってマジメに解く文系卒。えらい、えらいぞ!
– 5分後にふと衝撃走る。「これPythonでやったほうが早くない?」
– そんな、いつか 誰かに 本気で怒られそうな気づきを 実行したのであった──。#ルール
– 数学オリンピックの問題をPythonで解く。
– ライブラリは可能な限り使わない。例外的にitertoolsは使う。
– 図形の問題は挑戦しないかも。許してね。
– 式変形すれば解けるようなものも面白味がないので対象外。#引用元
問題はこちらから引用しております。[第31回(2021年)JMO予選の問題 – 数学オリンピック](https://www.imojp.org/archive/mo2021/jmo2021/problems/jmo31yq.html)
https://www.imojp.org/archive/mo2021/jmo2021/problems/jmo31yq.html
#Q1
##問題
>互い
コマンドを打つとチャンネルを作ってくれるdiscordbotをPythonで作ろう
#Botとは
一般的なBotはいい印象はないそうです。
([総務省HP](https://www.soumu.go.jp/main_sosiki/joho_tsusin/security_previous/kiso/k04_bot.htm#:~:text=%E3%83%9C%E3%83%83%E3%83%88%EF%BC%88BOT%EF%BC%89%E3%81%A8%E3%81%AF%E3%80%81,%E3%81%9F%E3%82%81%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%82%A6%E3%82%A4%E3%83%AB%E3%82%B9%E3%81%A7%E3%81%99%E3%80%82&text=%E5%A4%96%E9%83%A8%E3%81%8B%E3%82%89%E8%87%AA%E7%94%B1%E3%81%AB%E6%93%8D%E3%82%8B,%E3%81%A8%E5%91%BC%E3%82%93%E3%81%A7%E3%81%84%E3%81%BE%E3%81%99
kivyMDチュートリアル其の参什玖 Components – Snackbar篇
ハロー、Qiita。いかがお過ごしでしょうか。
はい、ということで今週も相変わらず開いております。少し肌寒いというかめちゃ寒
でしたが、体調は崩してはいませんでしょうか。この業界は体資本、というかビジネス
マンであれば全てと言っても過言ではないくらい体を使います。体調は万全にしておき
たいですね。今週のニュースはというと、特にとりとめもなかったかと思います。私の調査不足という
ことはなしにしてください。。で、今週のKivyMDのテーマは、Snackbarとなります。下の方で伝えたいメッセージを
ピローンと出すやつですね。ではさっそく元気でやっていきます。えいえい、えいー。## Snackbar
毎回のことですが、マテリアルデザインのリンクは飛ばします。KivyMDとかでは仕様を
守って実装されているのでそれほど気にする必要はありませんが、結構見落としがちな
ことなどを書かれています。例えばボタンはテキストと同じにしないとか、このボタン
のスタイルは使っちゃだめよとか。気になる方は一度ご覧いただけたらと。マニュアルの方でもこのように概要が書かれています。
> Sna
[ Python ] クラス変数とインスタンス変数
`class`をpythonで宣言する際に、クラス内変数を宣言することがあります。
特にクラス内で値を追加したり削除したりするリストを使いたい場面がよくあります。
クラス内変数の宣言方法や「クラス内変数」という呼び方が実は曖昧な呼び方であったことを知ったので備忘録としてまとめていきます。[以下は、公式ドキュメントから引用しています。](https://docs.python.org/ja/3/tutorial/classes.html)
– 一般的に、**インスタンス変数**はそれぞれのインスタンスについて固有のデータのためのもので、**クラス変数**はそのクラスのすべてのインスタンスによって共有される属性やメソッドのためのものです:
“`python
class Dog:kind = ‘canine’ # class variable shared by all instances
def __init__(self, name):
self.name = name # instance varia
【python3】jsonファイルの読み書き
# jsonファイルの読み書き
同じ内容を何度も調べている気がします。
アウトプットしなければ覚えられないという結論に至ったので
jsonファイルの読み書き関数を記事にまとめます。## コード
“`handle_json_file.py
import json
import osdef write_json_file(path, file_name, data):
“””
辞書データをファイルに書き出す:param path: 親フォルダのパス
:param file_name: ファイル名
:param data: 辞書データ
“””
file_path_name_with_ext = os.path.join(path, file_name + ‘.json’)
with open(file_path_name_with_ext, ‘w’) as fp:
json.dump(data, fp)def load_json_file(path, file_name):
“”
オムロン環境センサ(2JCIE-BU)をラズパイで使ってみた。(5)
今回は、センサーの話はあまりなく、ラズパイで音声合成のメッセージを流すまでの作業の記録です。
最後に、センサーから取得したデータから何らかのメッセージ(温湿度とか熱中症注意のめせーじとか)を流すことを目標としています。# ラズパイとスピーカー
100円ショップで購入したスピーカーをラズパイに接続しています。
いろいろとあったので最後に追記。# Audioの設定
“`shell-session:
pi@raspberrypi:~ $ sudo raspi-config
“`
「1 System Options」を選択します。|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/28184/2141ca63-ce15-99db-24f0-25686b4e179c.png)|
|:-:|「S2 Audio」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2818
boto3でECSを使ってブログ開設するまでを自動化
# 開発前の状態
* 今後の仕事でAWSを触ると聞き,知識ゼロなのでヤバみを感じた
* とりあえず本を買って勉強して雰囲気は掴んだ気になっている
* https://www.amazon.co.jp/Amazon-Web-Services-基礎からのネットワーク-サーバー構築/dp/4822237443
* GUIぽちぽちすればやりたいことはできると感じたが,さらなるステップアップをするためにはどうしたらいいか悩んだ
* これまでの仕事でAnsibleなどによる環境構築自動化や,dockerなどのコンテナ技術のありがたみは非常に実感していた
* なので,
* 環境設定をすべて自動化し
* EC2上での作業を予めDockerImage化しておいてデプロイところまで頑張ってみたいと思った# コード
https://github.com/fugashy/aws_network_and_server_sample
## やっていること
* VPCからECSのサービス開始までを全自動化
* VPC,Subnetなどを依存関係に注意して作成していく
pythonを使ってRestAPIでファイルを取得する
#はじめに
pythonでRestAPIを実行し、テキストファイルを取得し、保存するコードです。######環境
python3.9.6#サンプルコード
“`python
import requestsurl = ‘https://[対象のURL]’
headers = {‘Content-Type’:’application/json’,’xxx-key’:’‘} try:
#APIで隔離メールをダウンロード、失敗したらエラーを出力
response = requests.get(url , headers=headers)
response.raise_for_status()
except requests.exceptions.RequestsException as e:
print(“エラー:”,e)#ファイルを取得できた場合に、filename.txtとしてファイルを保存する。
if response.status_code == 200:
with open(“filename.txt” ,mod
AOJトライに関する知識知見の記録共有 (Volume0-0040)
# 概要
Affine Cipherhttps://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0040
# コード
空白文字に定数-1を割り付け“`
def char2int(data, inv=False):
c_seq = “abcdefghijklmnopqrstuvwxyz ”
if inv:
ret = c_seq[data]
else:
ret = -1
for ret, c in enumerate(c_seq):
if data == c:
break
return retdef f(c, a, b):
if c == ” “:
ret = -1
else:
ret = (a * char2int(c) + b) % 26
return retdef core(enc_str):
ret =
pip/pipenvのSSLエラーが出てハマりまくった。
昔、プロキシ環境下で、pip/pipenvにハマったので、備忘録として解決できた方法をまとめました。
## 今回発生したエラー内容
pipもしくはpipenvを実行すると、以下のエラー内容が表示された。“`
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(1, ‘[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1108)’))’:
)’))’:
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(1, ‘[SSL: WRONG_VERSION_NUMBER] wrong versi
pygameでテキストを中央寄せにする
いろいろ調べてもやり方がよく分からず、分解して考えることで理解できる気がしたのでまとめてみた。
全体像はこんな感じ。“`python
import pygameWIDTH = 500
HEIGHT = 500pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
font = pygame.font.SysFont(None, 120)text = font.render(“Test”, False, (255,255,255))
text_rect = text.get_rect(center=(WIDTH//2, HEIGHT//2))endFlag = False
while endFlag == False:
for event in pygame.event.get():
if event.type == pygame.QUIT:
endFlag = True
screen.blit(text, text_rect)
【Python】for文で辞書(dictionary)繰り返し処理
辞書また、辞書型変数(dictionary)はkey-valueで格納されるデータです。
### 自分の定義した辞書
“`python
myDict = {‘John’ : 180, ‘Naomi’: 156, ‘Terry’: 177, ‘Stella’: 160}
“`### 1. キー(key)だけ取る
#### 1.1 デフォルトでアクセス
“`python
for key in myDict:
print(key)
“””
結果:
John
Naomi
Terry
Stella
“””
“`#### 1.2 dictionary.keys()でアクセス
“`python
for key in myDict.keys():
print(key)
“””
結果:
John
Naomi
Terry
Stella
“””
“`### 2. 値(value)だけ取る
“`python
for value in myDict.values():
print(value)
“””
結果:
180
156
177
160
“””
“`
3D姿勢推定+Unityでリアルタイム3Dトラッキングするシステムについて現状まとめ
#何をした?
3D人物姿勢推定機械学習モデルを用いてWEBカメラの画像から人物の各関節位置(姿勢)をリアルタイムで推定し、得られた3D位置を使用してUnity上の3Dモデルを動かすシステムを作成#成果
**1.複数人のリアルタイムトラッキング**
GoogleColaboratory上の3D姿勢推定モデル
入力:WEBカメラの画像をYoutubeLive経由で送信
出力:カメラ位置を原点とした各関節の3D位置(10~15FPS程度)↓ UDP通信
ローカルPC上のUnity
入力:カメラ位置を原点とした各関節の3D位置(関節間の角度をモデルに適用)
出力:3Dモデルのモーション(リアルタイム表示・BVH形式出力)YouTube動画/Liveを入力とし、無料クラウドGPU環境(Google Colab)上で複数人の人物追跡・3D姿勢推定を行った結果をローカルPCのUnityで受信し、3Dモデルに反映させる試みのテスト pic.twitter.com/HUmxrmPe3y
— K2 (@K2ML2) January 24, 2021
**2.指のトラッキング**
MediaPipeのHand Trackingモデルを追加して指のトラッキングを追加今週の進捗。
3D姿勢推定にmediapipeのHand trackingを追加した。動作の流れ:
手を振る動作→1→2→3→4→5→グッド→ウクレレを構えてジャカジャカ鳴らす動作 pic.twitter.com/ijmEZNReOU— K2 (@K2ML2) January 31, 2021
#使用した機械学習モデルについて(複数のモデルの
ラズパイで消費電力を取得する(1)
#目的
Raspberry Pi4とCTセンサーを用いて、消費電力を取得し、AWS IoT Core経由で、ElasticSearchに流し込むこと。#方法
ざっくりの流れは以下の通りです。1. ハードウェアの構築
1. 消費電力取得プログラムの作成
1. AWS環境の構築###1.1 ラズパイのセットアップ
まずは、ラズパイ上で、Pythonのスクリプトが実行できるようにセットアップしていきます。
####1.1.1 必要なものを用意する
* Raspberry Pi 4(通称ラズパイ)
* USB-Cの電源(3.0A以上供給可能なもの)
* あらかじめRaspberry Pi OSがインストールされたmicroSDカード
* USBキーボード
* USBマウス
* モニター
* マイクロ HDMI-HDMIケーブル**ラズパイのインターフェース**
Raspberry Pi 上で UART通信をする Pthon環境で プログラム
【1960年生まれのおじさん日記】
60歳の定年退職後に再就職した現在の職場で ≪STM32(32bit汎用マイコン)≫でプログラム作成を
依頼され その後もRaspberry Pi でブロックチェーンを構築してと言われ 分からないことだらけ!
一応は、若いころから 製造業で働き 制御用ソフト や アプリケーションの作成をしたこともある
けれども・・・この年齢になって Raspberry Pi でブロックチェーンの構築などするとは思わなかったおじさんの
メモ書き記録。間違いも多々あるかと思いますが、お許しください。—
**はじめに**
Raspberry Pi4 上で UART通信を行う プログラムを Pythonで書いてみました。環境は、Raspberry Pi4 に標準で搭載されている [Thonny Python IDE]
—
**準備**
シリアル通信を行うためのライブラリーを Raspberry Pi4 に入れる~~~
>$ pip install pyserial