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

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

Stable Diffusion のコードを斜め読みする

ここ最近DeepLearning関連のコードを書いていなかったので、
最新のDeepLearningの実装やお作法、Stable Diffusionの実装などをStable Diffusionのレポジトリ通して、この際お勉強.

# ソースコード

CompVis/stable-diffusion

https://github.com/CompVis/stable-diffusion

# 参考文献

仕組みなどは下記で簡単に抑えた上でコードを確認.

*本家サイト*

Stable Diffusion with ? Diffusers

https://huggingface.co/blog/stable_diffusion

*日本語解説系*

日本語
【概要速修】Stable Diffusion(テキストから画像生成)はどうやって実現するのかざっくり仕組みを知る(DiffusionModel,Deep Learninig)【機械学習解説動画】

下記で概要を押さえてからコード見たから、大分読みやすかった.

元記事を表示

Bitnami Mattermost 7.2 初期設定 + Python2,3 同居設定

Mattermostの最近のバージョンにはスレッド折り畳みやら、検索の改善やらいろいろ改善がされているようなので
VMをダウンロードしてインポートしたところからの初期設定手順です。
Bitnamiさんがいろいろ省きすぎて動かないものが多く、トラブルシューティングに時間がかかりました。。

# sshの設定をする

まずはsshでつなげられないといけないので、sshdの設定をします。
[公式ページ](https://docs.bitnami.com/virtual-machine/faq/get-started/enable-ssh/)に設定方法が書いてあるのでその通りやります。

viでは、PermitPassword。。のところを編集して、一時的にsshで入れるようにしておきます。

“`shell
sudo rm -f /etc/ssh/sshd_not_to_be_run
sudo vi /etc/ssh/sshd_config
sudo systemctl enable ssh
sudo systemctl start ssh
“`

# Debianのアップデート

きっ

元記事を表示

言語処理100本ノック俺の解答 第5章

[言語処理100本ノック第5章: 係り受け解析](https://nlp100.github.io/ja/ch05.html)の俺の解答。[その他の章はこちら](https://qiita.com/sangoro/items/9bb6b5c39e756818cce2)。

形態素解析器はCaboChaを使います。

問題に入る前に、文分割について。CaboChaは、文を入力として受け取る前提になっていると思う。一方でai.jaは文に分割されていない。ai.jaの行をそのままCaboChaに投げても、いい感じに解析してくれはするのだが、やはり係り受け解析って文の内部の構造を解析するものだと思うので、気持ちが悪い。

そこで、まずテキストを文に切るスクリプトを作成。[東北大BERTの前処理](https://github.com/cl-tohoku/bert-japanese/blob/main/make_corpus_wiki.py)を真似て、MeCabの解析結果が句点になるところで切る。

“`Python
import argparse
import sys

parser = a

元記事を表示

数独を Backtracking で解く

# 概要

数独を自動的に解く solver を作る。アルゴリズムは Backtracking.

その中でも、戦略を 3 つで考えた。

* `FOOLISH` … バカみたいに左から順番に空いているところから試していく
* `SORT_BEFOREHAND` … 候補が少ないところを予め算出しておいて、その順番で試していく
* `DYNAMIC` … 探すところを動的に変える。どのように変えるかというと、その瞬間で候補が一番少ないところを見つけて、そこから探す。

# code

“`python
from copy import deepcopy
from typing import List
from collections import deque
from itertools import product

FOOLISH = ‘FOOLISH’
SORT_BEFOREHAND = ‘SORT_BEFOREHAND’
DYNAMIC = ‘DYNAMIC’

class SudokuSolver():
def __init__(self) -> No

元記事を表示

プログラミングの公式サイトまとめ

## 背景
・プログラミングの公式サイトは英語が基本なので、検索でトップに出てこないことも多い。
・よく使用するようなプログラミングの公式サイトをまとめておいて、検索で困ることがないようにしたい。

## 各種公式サイト
– UCI Machine Learning Repository
アメリカの大学が運営している機械学習のデータセットを配布しているサイト。
商用利用も可能なデータセットも多いので、教材作成に役立つ。

https://archive-beta.ics.uci.edu/

– pythonの標準ライブラリの公式サイト

https://docs.python.org/ja/3/library/index.html

– AWS CDKのAPIリファレンス

https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html

– pandasの公式サイト

https://pandas.pydata.org/

– matplotlibの公式サイト

https://matplo

元記事を表示

アヘ顔をDCGANで自動生成しようとした。

どうも、山田永昌です。

突然ですが、アヘ顔はご存知ですか?

ウィキペディアによるとアヘ顔とは
“`
ポルノグラフィのコンピュータゲーム(アダルトゲーム)、漫画、アニメ(ヘンタイ)でしばしば使用されて
いる、性行為の最中における架空のキャラクターの表情を表現した日本のポルノの用語。
“`
らしいです。

ということで今回はDCGANを使って、アヘ顔を自動生成させていきたいと思います。

コードは以下をパクって改造したやつを使いました。
https://www.kaggle.com/code/aneesh10/dcgan-on-pok-mon-images

トレーニングデータとして、ネットから一枚一枚保存していった画像70枚ほどを使いました。
数が非常に少ないのは、これ以上すると中学生である私のパソコンの履歴が18禁ものばかりになってしまうのでしょうがありません。

# 上手くできたやつ
100エポックほど回しましたが、それを全部載せるのは面倒なので、良さげのを2つだけ載せます。
![ダウンロード (15).png](https://qiita-image-store.s3

元記事を表示

テイラー展開(Taylor expansion)の復習とpythonでテイラー展開をする方法

## 背景
– 久々に、学生時代に研究していた流体解析がしたくなった。
– 学生時代は、流体解析に使用する数式の導出や原理の理解までできていなかった。
– 流体解析をなんとなくではなく、自分なりに理解して楽しく分析して記事にしたいと思った。
– 復習しはじめたが、数値解析の基本となるテイラー展開への理解が浅かったので復習してみた。

## お願い
– 数学科出身とかいうわけではないので、解釈違いや間違いがあれば是非優しくご指摘ください。

## 目標
– 数値解析に必要なテイラー展開の知識を復習する。

## テイラー展開と数値解析の関係
– そもそも、数式の解は

(1)解析解:理論的・代数的に算出できる解のこと
・厳密に求められるが式の形状によっては導出が困難になる。

(2)数値解:数値計算によって得られる解のこと
・計算機でゴリゴリ計算するので、大抵の解は求められるが誤差を含む。

の2種類に分けられる。

– パソコンは最終種的に全ての情報を2進数(01)で処理する都合上、解析解を求めるのは不得意である。
– 基本的にパソコンで使用されている

元記事を表示

【Python】二次元配列の標準入力をリストの内包表記で受け取りたい【AtCoder】

# 書いてあること
* 二次元配列の入力の受け取り方
* リストの内包表記
# 記事執筆の経緯
こんな入力を受け取りたいんだけど…
“`python:input.py
H W
A11 A12 … A1W
A21 A22 … A2W
AH1 AH2 … AHW
“`
「え、どうすればいいの??」
となったので、備忘録がてら記事を書くことにしました。
# 環境
Python(3.8.2)
~~※実行速度のこと考えるならPyPy3の方がいいです、多分動きます。~~
⇒PyPy3(7.3.0)でも動きました
# 本題のコード
“`python:main.py
H, W = map(int, input().split())
A = [[int(x) for x in input().split()] for i in range(H)]
“`
# リストの内包表記とは
:::note info
簡潔に言えば、for文を使って配列を生成する方法です。
:::
以下のように使えます。
> `[式 for 任意の変数名 in イテラブルオブジェクト]`
> ([note.nkmk

元記事を表示

numpyで第一要素でSortし,同一値の場合は第二要素でSortする方法

`np.lexsort` によってargsortができるようです.
ただし,一番最初にSortをするKeyが引数の最後に来ることに注意が必要です.

“`python
import numpy as np

a = np.array([
[2, 1, 2, 3, 1, 4, 3],
[4, 1, 3, 2, 3, 3, 5],
]).T

order = np.lexsort((a[:, 1], a[:, 0]))

>>> a[order]
array([[1, 1],
[1, 3],
[2, 3],
[2, 4],
[3, 2],
[3, 5],
[4, 3]])
“`

元記事を表示

結晶・分子グラフの効率的なDataLoader実装を考える

## はじめに
最近は結晶構造や分子構造をグラフ構造で表現し、機械学習を行うことが流行っています。特に、DFT計算でのエネルギーなどの出力をグラフニューラルネットワーク(GNN)で学習する、ニューラルネットワークポテンシャル(NNP)が非常に注目されています。ハイスループット計算により大規模なDFTデータセットの作成が可能になりつつあり、学習を行う際には結晶構造をグラフ化するコストも考える必要があります。

そこでこの記事では簡便かつ高速にpytorchの`DataLoader`グラフデータを取得する方法を考えます。

## 必要なライブラリ
* ase
* lmdb
* ocpmodels (グラフ化のために、`AtomsToGraph`のみ使用)
* torch
* torch-geometric

## 実装方法
以下の3通りを試してみます。
* aseのデータベースから読み込み
* LMDBから読み込み
* cifファイルから読み込み

## ase
### データベースを作成
まずaseのデータベースを用いて`Atoms`オブジェクトを保存します。今回はAl構造に適当に変位を

元記事を表示

Python Yahoo!ショッピングのAPIで検索上位調査

# Python Yahoo!ショッピングのAPIで検索上位調査

Yahooショッピングが提供しているAPIを利用して、ある検索ワードでの検索結果の上位1000件の商品の情報を取得する。下記がそのプログラムである。下記リンクにAPIの詳細が記載してあるが、制約として短時間でアクセスした場合はしばらく使えなくなることと、検索数は最大1000件までとなっている。

https://developer.yahoo.co.jp/webapi/shopping/shopping/v3/itemsearch.html

“`python:auto_yahooshop.py
import sys
import os
import numpy as np
import requests
import json
import time

item_name = ‘amazon’
appid = ‘******’

### 特定ワードで検索した結果上位1000件をcsvへ吐き出す
datray1 = np.array([])
datray1 = np.append(datray1 , “商品名,価格

元記事を表示

順列問題に再帰関数を利用し福岡の猫島を巡る

初投稿記事です。お手柔らかにお願いいたします。

# 順列・組み合わせを返す再帰関数のテンプレート
まずは雛形を示します。

“`python
def create_lists(mylist=[]):
if is_answer(mylist): # a boolean which indicates mylist could be an answer.
return mylist
result = []

for c in get_appendable(mylist): # a list of elements which can be added.
x = create_lists(mylist+[c])
if len(x)!=0 and type(x[0]) is list:
result.extend(x)
elif len(x)!=0:
result.append(x)
return result
“`
is_answer(

元記事を表示

CヘッダからPython向けバインディングを自動生成してDLLから関数を呼び出す方法

# この記事は?
C向けSDKが手元にあるけど柔軟にインタプリタ型言語のPythonでチクチク触りたい人向に刺さると思われる記事
いいねしていただけるとモチベが上がります。

## 時間がない人向け
ctypeslib2をインストールすると付属するclang2pyを使用すると簡単にできる
1. `pip install ctypeslib2`
2. `clang2py header.h -o out.py`
3. (Windowsのみ)生成されたコードを編集し、DLLとリンク

## 確認のためCソースから自作してPythonから呼んでみる
XとYの値を持つ`POINT`型を含んだヘッダファイルを作る。
C言語側のお仕事は`print_position()`で`POINT`の属性を出力すること。
DLL化するために`__declspec(dllexport)`を使用する。

“`c:point.h
#ifndef POINT_H
#define POINT_H

typedef struct Point {
int x;
int y;
} Point;

__dec

元記事を表示

とりあえずdockerコンテナに入ってなんやかんやしたい人へ

dockerを学び始めた時の私
「とりあえずコンテナ?を立ち上げてそのコンテナでなんやかんやしたい!でもpullとかrunとか意味わからん!」

だったので今回はシンプルにdockerコンテナ内でpython環境を整えて
dockerコンテナでpythonを実行して遊ぶまでを書きます

とりあえずおもむろに以下を叩く
“`$ docker images“`
“`
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
“`

何もimageが入ってない。ここにpython imageをpullして入れる
“`$ docker pull python“`
docker hubからpython imageがpullされます。

pullされたか確認
“`$ docker images“`
“`
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
python latest 4f9baf941

元記事を表示

Spotify API をPythonでちょっと遊ぶ

# はじめに
初めまして
Spotifyを一年で750時間も使用しているヘビーユーザーです。
そんなSpotifyがAPIを出しているらしくなかなか難しそうだなとか思いながら、ようやく重い腰を上げて取り組んでみることにしました。
ついでにモチベ維持のためにQiitaも始めようというわけです。 
あとは自分のノートがわり

前置きはこの辺にして

# ID取得
APIを使用するにはSpotifyに登録が必要らしいです。
まだの方は[こちら](https://www.spotify.com/jp/premium/?utm_source=jp-ja_b_cont_text&utm_medium=paidsearch&utm_campaign=ao_apac_jp_pm_core_b+cont+text+exact+jp-ja+y&yclid=YSS.EAIaIQobChMIoJbW3dCJ-gIVAayWCh14_ADREAAYASAAEgIJQ_D_BwE&gclid=CIPDtuTQifoCFYOGvAodDAIG9g&gclsrc=ds)からどうぞ

それじゃあ必要なCl

元記事を表示

(その2)A→株式会社アンペア、E→株式会社エナジーといった入力文字から会社名を返す初歩的なPythonプログラム

前回に作成した記事に対して「PySimpleGUIというライブラリが使いやすい」というコメントを頂いた。
初心者なのでこういったライブラリの紹介は本当にありがたいです。

https://qiita.com/tachibana-mayumi/items/fe9f577a01e568bf24bd

今回はPySimpleGUIを使って以下のプログラムを作ってみた。
* 立花真由美→a001、立花理香→a002、みたいな感じで社員番号を返すもの
* 日本→こんにちは、アメリカ→Hello、ハワイ→alohaみたいな感じで地域名を入れると挨拶を返すもの
* A→株式会社アンペア、E→株式会社エナジーといった感じでアルファベットから取引先を返すもの

## ハワイ→alohaと返すようなプログラム(PySimpleGUI版)
日本→こんにちは、アメリカ→Hello、ハワイ→alohaと返すようなプログラム。
今回は合わせて社員番号から社員を返すプログラムも作ってみた。
確かにPySimpleGUIはコマンドがわかりやすかったり、コードがシンプルになってとてもいい感じ。

~~~aloha.py

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのwhile文の比較

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

Python,Ruby,PHP,Java,JavaScript,Perlのwhile文の比較

# Python

https://qiita.com/Morio/items/10d33f6dbb0845ae5038

# Ruby

https://qiita.com/Hashimoto-Noriaki/items/f406bcfb00e79e3937d0

# PHP

https://qiita.com/miriwo/items/2c2aa77d5de66c074ec5

# Java

https://qiita.com/takahirocook/items/05bfe37bb4ba64f3a78e

# JavaScript

https://qiita.com/kaz7991/items/7f98cc17c4df9ab6a009

# Perl

https://perlzemi.com/

元記事を表示

Exchange Onlineの基本認証廃止で普通に困ってる人のためのエントリ

# はじめに
基本認証を使っている方は2022年10月1日からExchange Onlineに接続できなくなります。
ある日会社に行ったら、Xデー迄あと1か月ないので至急対処してくれとお達しが来ていました。
現実を受け止めきれなかったのですが、公式声明文が出ていたので、どうやら本当のようです。

https://docs.microsoft.com/ja-jp/exchange/clients-and-mobile-in-exchange-online/deprecation-of-basic-authentication-exchange-online

ということで、この記事は次のような人に向けて書かれています。
– OfficeのメールボックスをIDPWで開いてなんやかんやする自家製アプリを書いている。
– 2022年10月1日までにOAuth2.0認証に切り替えないといけないし、何ならもう10月1日になった
– 正直何からやっていいか不明だし何で検索すればいいかよくわからない
– こんなことをやっている場合ではないし、とにかく悲しい

# 要点

## Azure ADにアプ

元記事を表示

4GB以上のzipファイルをPythonで解凍する

4GB以上のファイルをunzipコマンドで解凍しようとしたらErrorになった。
どうも4GB以上のファイルはunzipコマンドでは解凍できない模様。。

私はpython推し()なのでpythonで解凍して解決しました。

◆python version
“`$ python3 -V“`
→ Python 3.10.5

◆コード
“`run_unzip.py
import sys, shutil
shutil.unpack_archive(sys.argv[1], sys.argv[2])
“`
◆実行
“`$ python3 run_unzip.py (解凍したいファイル) (解凍先のファイル)“`

sys.argv[n]で引数として解凍したいファイル、解凍先のファイル(存在しない場合は生成される)を指定。
shutil.unpack_archiveでzipファイルを解凍する。

例)
“`$ python3 run_unzip.py hoge.zip output“`

以上でした!

元記事を表示

OpenCVとYOLOv5を使って動画切り抜きをしてみる

## はじめに
自動で動画切り抜きする方法を、クラウドを使わずにローカル環境で試してみた。
OpenCVと検知能力もそこそこ優秀で比較的処理が軽いと言われる`YOLOv5`を使って作ってみたので、メモとして残しておく。

## 実施環境
■ PCスペック
 CPU:Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz 3.20 GHz
 メモリ:8.00 GB

■ OS
 Windows 10 Pro 

■ 各種SW&パッケージのバージョン(今回インストールするもの含む)
 python 3.9.5
 pip 21.3.1
 opencv-python 4.5.4.60
 YOLOv5

## メモ内容
①環境準備の流れと、②Pythonコードをメモとして残す。

### ① 環境準備
色々なパッケージが必要となりローカル環境が散らかりそうだったため、自分は仮想環境上で環境を構築している。(手順は下記を参照)

https://qiita.com/smiler5617/items/2abce37f9684394562e3

https://qiita

元記事を表示

OTHERカテゴリの最新記事