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

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

Stable DiffusionをWindowsかつCPUで実行してみる

## はじめに

ネットサーフィンをしてたらStable Diffusionという素晴らしいものを見つけたので、
GPUの環境でも使えたらいいなと思い調べてみました。

## 参考

zennというサイトのこちらの投稿を参考にさせて頂きました。

https://zenn.dev/karaage0703/articles/4901bf68536907

上記ではWSL2やdockerを用いて環境を構築しておりますが、
anacondaでもできるんじゃないと思ったので試行。

## gitからソースをダウンロード

https://github.com/bes-dev/stable_diffusion.openvino/tree/56b65312054d97b7b031ce8faba6310e7c120d00

こちらのページより右上の緑ボタンのCodeをクリック→Download ZIP。
Downloadしたzipを解凍して完了。

## anacondaで環境構築

新しい仮想環境を作成し、解凍したzipフォルダにcdして、コマンド実行

~~~:anaconda prompt
c

元記事を表示

Python TweepyでTweet取得(search_full_archive)

[Pythonパッケージの`tweepy`](https://www.tweepy.org/)を使ってTweet取得しました。少し前に短期間で実装したので、記憶が曖昧な部分も多いのですが、とりあえず記録に残しておきます。
[`search_tweets`関数](https://docs.tweepy.org/en/stable/api.html#tweepy.API.search_tweets)を使う記事は多かったのですが、[`search_full_archive`関数](https://docs.tweepy.org/en/stable/api.html#tweepy.API.search_full_archive)を扱う記事が少なかったので残しておきます。[`search_tweets`関数](https://docs.tweepy.org/en/stable/api.html#tweepy.API.search_tweets)は直近のTweetしか検索できません。

そもそもAPIのバージョンを意識しないでコピペしたので、`Tweepy`のAPI V1.1を使っています(v2が

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのファイル入出力の比較

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

Python,Ruby,PHP,Java,JavaScript,Perlのファイル入出力の比較

# Python

https://qiita.com/onishi_820/items/f3068d5533a1f4f5ae39

# Ruby

https://qiita.com/Morio/items/8f0dc0801cfcb98d8269

# PHP

https://qiita.com/Morio/items/1deca77b370851ed914f

# Java

https://qiita.com/DeraTosev/items/77cd689da4426b892793

# JavaScript

https://qiita.com/shirokuman/items/509b159bf4b8dd1c41ef

# Perl

https://perlzemi.com/blog/20

元記事を表示

Google Colab環境でpystan 3.3を利用する

# はじめに

2022/9/1時点でPyStanの[Quick Start](https://pystan.readthedocs.io/en/latest/index.html)に記載のコードをGoogle Colabo環境で動作させる際のメモです。

Pystan 3.5 Quick Start
“`python
import stan

schools_code = “””
data {
int J; // number of schools
real y[J]; // estimated treatment effects
real sigma[J]; // standard error of effect estimates
}
parameters {
real mu; // population treatment effect
real tau; // standard deviation in treatmen

元記事を表示

xgb 特徴量重要度を表す際の注意点

“`python
###### dtrain
# 可視化のために特徴量の名前を渡しておく
dtrain = xgb.DMatrix(X_train, label=y_train,
feature_names=train.drop(“y”, axis=1).columns)
dvalid = xgb.DMatrix(X_test, label=y_test,
feature_names=train.drop(“y”, axis=1).columns)
dtest = xgb.DMatrix(test.values, label=y_test,
feature_names=test.columns)

#### last
import matplotlib.pyplot as plt

# 性能向上に寄与する度合いで重要度をプロットする
_, ax = plt.subplots(figsiz

元記事を表示

Poetry1.2 のリリースで個人的に重要であったこと、既存環境で加えた変更

2022/08/31 に Poetry 1.2.0 がリリースされました。これまで動いていたものが動かなくなったという話も聞いたので、ドキュメントを読んで少し動かしてみました。その上で個人的に重要であったこと、既存環境で加えた変更をメモします。

# 個人的に重要だった変更
### 依存パッケージのグループ化ができるようになった
– tool.poetry.dependencies -> 暗黙的な main のグループ
– tool.poetry.dev-dependencies -> dev のグループになるので、早めに tool.poetry.group.dev.dependencies に変更する必要あり
– https://python-poetry.org/blog/announcing-poetry-1.2.0/#dependency-groups

### プラグインの機構が備わって、 poetry export はプラグインの機能になった
– poetry export のプラグインは将来的に別途 install する必要がある
– install 済みの `plugi

元記事を表示

DjangoでCeleryとRedisを使って非同期処理

Djangoで処理に時間がかかる機能があったので、どうにかならんものかと調べたら[Celery](https://docs.celeryq.dev/en/stable/ “Celery”)と[Redis](https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/ “Redis”)なるものを発見。その時の備忘録。

## 必要なパッケージをインストール
“`pip install celery“`
“`pip install django-celery-results“`
“`pip install redis“`
“`pip install django-redis“`
“`pip install django-celery-beat“`
“`brew install redis“`

## settings.pyを編集
“`
# ブローカーにredisを指定
CELERY_BROKER_URL = os.environ.get(‘REDIS_URL’, ‘redis

元記事を表示

MeCabとCaboChaのPythonバインディングWindows10編

# 1. はじめに
PCを更新すると、MeCabとCaboChaもインストールしなおし。
なかなか、うまくできない。
Qiitaはもちろん、Webを駆け回って、何とか解決した。

# 2. インストール手順
## 2.1. Windows 10
* もちろん64ビット

## 2.2. 32ビットのPythonをインストール
* ストアアプリのPythonもダメ

## 2.3. MeCabとCaboCha
* 公式のインストーラからインストール
* インストール先がデフォルトと違うと、Pythonバインディング方法が異なる
Linuxはどこにインストールされているかわかるからいいのか
* UTF8を呪文のように唱えながら

## 2.4. Visual Studio 2022でいいかぁ

ライセンス違反にならないように、好きなのをインストール

## 2.5. Pythonバインディング

### 2.5.1. MeCabとCaboChaがデフォルトのインストール先のとき
次でインストールできるはず
* pip install mecab
* pip install cabocha-

元記事を表示

GitHub ActionsでDockerコンテナをPullしてテストを動作させる。

# 目的

– Dockerコンテナイメージを生成しghcr.ioへPushできるようになる。
– GitHub Actions内でghcr.ioからコンテナイメージをPullし、コンテナ内でテストができるようになる。
– ghcr.ioへPushしたコンテナイメージを編集することができるようになる。(サブクエ)

# 背景

GitHub ActionsのworkflowでDockerコンテナを利用したテストを導入する方法を知りたいと思っていた。
今回はやっていないが、制限された環境(メモリ制約など)における試験などは、コンテナを使って試験をするのが簡単なため、まずはDockerコンテナをActions内で利用するところから知識を蓄えたいと思った。

# ghcr.ioとは

Dockerコンテナイメージを保存、管理することができるコンテナレジストリです。
Docker公式にもDocker Hubがありますが、同様のコンテナレジストリです。

https://docs.github.com/en/packages/working-with-a-github-packages-regi

元記事を表示

python並列処理ライブラリRayの使い方

# 使い方の結論
使い方は次のような感じ。説明はこのページの下のほうにあります。

“`python:
import time
import random
from tqdm import tqdm
import ray

@ray.remote # 並列化するために関数をデコレート
def func(random_num, big_object):

######## 何かの計算 ########
time.sleep(random_num) # スリープ
############################

return random_num # 何かを計算した体で、返却

def main():
# funcの引数1
random_num_list = [random.randint(0, 50) for _ in range(20)]

# funcの引数2(とても大きいオブジェクトとする)
big_object = None

###

元記事を表示

Windowsでpoetryが上手くインストールできない場合の対処

いつも通りPowerShellからpoetryを入れようとしたら入らなくなってた

“`PS
PS C:\Users\hoge> (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python –
Retrieving Poetry metadata

This installer is deprecated, and cannot install Poetry 1.2.0a1 or newer.
Additionally, Poetry installations created by this installer cannot `self update` to 1.2.0a1 or later.
You s

元記事を表示

生鮮野菜の価格予測 1位 解法 & 振り返り

Nishika株式会社が主催「[生鮮野菜の価格予測](https://www.nishika.com/competitions/32/summary#description)」コンペに参加しました。本記事で私の取り組みの共有と振り返りをしたいと思います。

# コンペ概要
– 本コンペでは、[東京都中央卸売市場日報](https://www.shijou-nippo.metro.tokyo.lg.jp/)および[気象庁](https://www.data.jma.go.jp/obd/stats/etrn/)よりNishikaにて収集・加工し作成したデータを用いて、過去実績の市場データや天気情報から将来の各野菜の日次卸売価格を予測することをテーマとします。
– 予測対象となる各野菜の日次卸売価格は、RMSPEで評価されました。RMSPEは、予測データ数$n$、真の値$y_i$、予測値$?̂_?$に対して以下の計算式にて算出されます。
“`math
RMSPE = 100\left(\dfrac {1}{N}\sum ^{N}_{i=1}\left( \frac{\widehat {y_

元記事を表示

第8回FUJIFILM Brain(s)コンテストQ2 1st Place Solution

# 目次
[1.概要](#1-概要)
[2.コンペについて](#2-コンペについて)
[3.解法](#3-解法)
[4.結果](#4-結果)
[5.大変だったこと](#5-大変だったこと)
[6.スライド](#6-スライド)
[7.最後に](#7-最後に)

# 1 概要
第8回FUJIFILM Brain(s)コンテストのQ2にて1位を取ることができたので、解法の紹介の記事を書きたいと思います。この記事を読み、マテリアルズインフォマティクスに興味を持ってもらったり、次のBrain(s)コンテストの参考になれば幸いです。

# 2 コンペについて
## 問題
2万個の分子のSMILESと最大吸収波長が与えられる。このデータを用いてN種の化合物のSMILESから最大吸収波長を予測するモデルを作成せよ。
(実行時間制限10分, メモリ512MB, N <= 2*10 ** 5, 提出ファイル容量10MB, 配布したデータセット以外の情報を用いることは禁止, 実行環境でpip installやconda installするのは禁止,ただし提出ファイルにライブラリを一緒にいれて提出するのはOK

元記事を表示

Flaskでラズパイの状態を確認するWebアプリを作ってみた(其の二)

## 投稿(其の一)のPythonコードのブラッシュアップを実施

#### [Flaskでラズパイの状態を確認するWebアプリを作ってみた(其の一)](https://qiita.com/MashCannu/items/2c4da7bbcf479070b67d)

#### 修正点
+ コマンドの実行結果をテンポラリにテキストファイルへ書き込みしていたのを中止

—–
### get_ip_addr()
“`webapp.py
#Get IP address via “ip -4 address” command
@webapp.route(‘/get_ip_addr’)
def get_ip_addr():
get_ip_addr = subprocess.run([‘ip’, ‘-4’, ‘address’],
stdout=subprocess.PIPE,

元記事を表示

自前のStable Diffusionを他の人にも使わせる方法

# 未曾有のStable Diffusionブーム!!!
![未曾有の.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75653/240e5150-5ecd-9bee-150e-bf177b54226e.png)
タイトル通り、gradio版Stable Diffusionで生成したタイトル画像です。

いまAI画像生成でStable Diffusionが話題です。試した方は他の人にもオススメしたいくらいでしょう。
ただ、快適な環境は導入するのにひと手間どころでなく面倒。
だけど非エンジニアの人にはもっと楽に使わせてみたい。そんな願望に応えられる環境がありました。

導入をしなくていいだけのパッケージはタケノコのように増えています。これは、あなたの余りあるグラフィック性能を分け与えるのに使えます(私の説明文がヘッタクソな翻訳文なのはこういう文体が好きだからです。ほっといてくれ)。

## Gradio採用版StableDiffusion
Stable Diffusionのforkリポジトリです。 [gr

元記事を表示

AWS CLI による Lambda Layer (Python) 作成・公開手順

# 手順

`python` という名称でディレクトリを作成します。(`python` でないと Lambda 上でライブラリをインポートできません)

“`sh
% mkdir python
“`

ターゲットディレクトリを `python/` に指定して、利用したい任意のライブラリをインストールします。

“`sh
% pip install -t python/ requests
“`

zip で固めます。

“`sh
% zip -r layer.zip python
“`

S3 上にアップロードします。`${BUCKET_NAME}` およびプロファイルは自身の環境に合わせて読み替えてください。

“`sh
% aws s3 cp layer.zip s3://${BUCKET_NAME}/layer.zip –profile main
“`

AWS CLI コマンド `publish-lambda-layer` [^1] を利用して Lambda Layer を公開します。

“`sh
% aws lambda publish-layer-ver

元記事を表示

Pythonで東芝テリーのカメラをつかってみた

# はじめに
Python初学者です。
仕事ではC#を使っているのですが、Pythonでプロダクトを作ってみたい!と下手の横好きで提案してみたところ実際に作ることに。

そうして、テスト用に東芝テリー製産業用カメラを使うことになったのでPythonでカメラが撮影した画像を扱える環境を作るための備忘録として記しました。

## 対象者
この記事は下記のような方を対象にしています
– Python初学者
– Windows上でPythonを利用してUSB接続の東芝テリー製カメラを扱いたい方

## 環境
– Windows 10 Pro 21H2
– Python 3.8.10
– OpenCV 4.6.0.66
– 東芝テリー BU2409M(USB3インターフェイス)

## 前提
– Pythonの開発環境が構築済みであること

# 本題
### デバイスドライバ導入
Windowsにデバイスドライバが導入されていない場合は、**TeliCamSDK**をダウンロードしインストールします。
[東芝テリー](https://www.toshiba-teli.co.jp/index_j.

元記事を表示

データサイエンスでDota2強くなるかも説(1)~環境設定~

## 1. はじめに

最近,Dota2を始めましたが全く勝てません
ハードボットにボコボコにされます.

色々と調べても「死ぬな」くらいのことしか分らず苦戦しています.

### 1.1. データサイエンスでDota2強くなるかも説

そこで,データサイエンスの力を借りて,どのような状況なら勝っているか?や前回に比べてどのように振舞ったから勝てたのか?ということを数値化して分析していけば強くなるのでは!と考えました.本企画はその仮説を検証していく企画です.

### 1.2. 今回の概要

Dota2の情報をPythonで取得するまでをやっていきます.

## 2. Game State Integrationの設定

Game State Integration(以下GSI)はゲーム中のデータを取得するための公式APIで,こちらを使っていきます.

### 2.1. GSIファイルの作成

`gamestate_integration_py.cfg`というファイル名で作成します.

“`cfg
“Python Dota 2 GSI Integration”
{
“ur

元記事を表示

データベースにインポートするCSVデータを自作するときの備忘録

# 概要
– データベースにインポートするCSVデータを自作する。
– データセットは[Kaggle](https://www.kaggle.com/)から取ってこれたりもするが、今回はカラムの指定があったのでテキトーに作るわけにはいかず、データセットを1から自作する。
– 生成する値が全てランダムで良いわけではなかったため(なるべく実データに近づける必要があるため)全部を[Faker](https://faker.readthedocs.io/en/master/index.html)さんにお任せするわけにはいかない。
– `customer_id`を join させたいため、2つのデータセットを作成する。

# 参考

https://faker.readthedocs.io/en/master/providers/faker.providers.profile.html

https://www.post.japanpost.jp/zipcode/download.html

https://github.com/polm/posuto

https://github.com/p

元記事を表示

TFRecordでデータセットを組むまとめ

## 前説

TFRecordの[TensorFlow公式チュートリアル](https://www.tensorflow.org/tutorials/load_data/tfrecord?hl=ja)でスカラー値の保存しか詳細に解説されていなかったため、
多次元Tensor(元はndarray)の保存方法を備忘録として記す。

numpy行列をTFRecordに保存し、さらにそれを読み込みtf.data.Datasetにするまでの手順をまとめていく。
また、簡単にsharding(複数ファイル分割)を行う方法も記載している。

## サンプルデータ

numpyを使って保存/読み込みをおこなうデータを用意。

“`python
import numpy as np
length = 3
tmp_array = np.empty((0, length, length))
for i in range(4):
tmp_array = np.append(tmp_array, (np.identity(3)*(i+1))[np.newaxis, :, :], axis=0)
tmp_a

元記事を表示

OTHERカテゴリの最新記事