Python

TensorFlow + AMD GPU + Docker + WSL2

I got stucked for the first time in a long time when I tried to set up my ML environment. I hope this will help someone. ML環境を整えようとしたら久しぶりに詰まったのでメモ。 Executed Commands TensorFlow with DirectML Docker How to solve it…

Python unittestのベストプラクティス

Pythonのユニットテストについて、現状の結論(ベストプラクティス)を記したいと思う。 使用するフレームワーク ルール 関数ごとにテストケースを作成する プロパティのテストはTestCaseクラス名_propertyで行う アサーションは"結果"に対して行う クリーン…

GoogleAppsScript と Python の連携(Python calls GAS Functions)

PythonからGAS(Google Apps Script)関数を呼び出すためのメモ。 目標 下準備 Python から GAS関数を実行する ライブラリのインストール Credentialsの取得 GAS関数を呼び出す 応用案 GASについて おわりに 目標 GAS関数を利用してGoogleAPIを一本化しよう! …

Pythonパッケージ開発フロー

今日は半日でパッケージのα版を一つリリースして、デプロイまで実施できた。 パッケージ開発のフローにだいぶ慣れてきた証拠とも言えるので、それをメモしておこう。 作成したパッケージ メインパッケージの作成 インターフェースの設計 Docstringの整備 テ…

Python(Go)でリバースプロキシを実装

リバースプロキシをライブラリに組み込む必要があったのでそのメモ。 proxy.py Go gopy ライブラリを使用 必要条件 インストール方法 使用方法 ライブラリを使用しない 必要条件 ビルド 配布する Dockerでビルドする例 余談 まとめ proxy.py github.com (acc…

Ubuntuでpython3を消したら痛い目を見た

現在サブのコンピュータとしてUbuntuを使用しているが、基本的にプログラムはDockerで管理するからpython3要らんやろ、と適当にアンインストールしたら痛い目を見た。 実行したコマンド 発生した問題 トラブルシューティング 解決方法 反省 別の方法 実行し…

PyPI公開へのメモ

PyPIへパッケージを公開するためのメモ。 PyPIへ登録 PyPIとテスト用のPyPIにアカウント登録する。 ※本番用のPyPIに一度上げると同じバージョンでは再アップロードできない。 pypi.org test.pypi.org .pypirc をホームディレクトリに追加 .pypirc [distutils…

Authentication System with FastAPI + SQLModel

FastAPIでログイン機能を15分で実装するためのTips。 Offitial Tutorial SQLModel Installation FastAPI-Users Installation Concepts Code Run Usage ToDo Offitial Tutorial fastapi.tiangolo.com ログイン機能実装の勉強にはなるけど、わざわざ自分で書く…

__init__()の引数を書き換えずに処理を追加する

Python Tips. 忘れないようにメモ。 実現したいこと 実装方法 挙動テスト 改良版 実現したいこと サードパーティ―ライブラリ(3rd-lib)の上に自身のライブラリを作りたい時、3rd-libのクラスを継承してサブクラスを作りたい時がある。 このとき、初期化処理を…

ygo-agent

最近山ほどPythonのパッケージを作っている。 というのも、パッケージの配布方法を身に着けてからは過去のパッケージとは呼べないコードの山がただのゴミに思えてきて、そのゴミをリサイクルするためにまともなパッケージ化を進めている。 基本的に同じ作業…

websockets(python) 型アノテーション

websocketsを使う websocketsはWebSocketプロトコルをPythonで実装する上で便利なライブラリである。 pypi.org # インストール $ pip install websockets 公式ドキュメントからそのまんまサンプルコードを # クライアント import asyncio import websockets …

Docker + Selenium + arm64

When I tried to use Selenium on RaspberryPi whose OS is Ubuntu, I couldn't do it because any image of SeleniumHQ/docker-selenium doesn't support arm64. I tried another way, which is downloading chromedriver from https://chromedriver.chromi…

RaspberryPi + Python3.9でmatplotlib/pandas

nnt339es.hatenablog.com 折角ビルドしたのにmatplotlibもpandasもpipできなかったので結局Docker。 curl -fsSL https://get.docker.com/ | bash 参考 docs.docker.jp (accessed on 2021/06/10) Dockerfile 適当にDockerfile書いて終わり。 FROM python:3.9.…

RaspberryPiへのPythonインストールメモ

RaspberryPiにUbuntu入れて適当にPythonインストールしてたらSSL関連でpipが詰まったのでそのメモ。 $ sudo apt update # ビルド用ライブラリのインストール (これを忘れていた。) $ sudo apt install build-essential libbz2-dev libdb-dev \ libreadline-…

pyYGOBot(ygo-agent)の今後

一人回しの時間がもったいないから機械学習によって一人回しと同等の知見が得られないかと画策しているpyYGOBotであるが、今後の作業について整理したいと思う。 パッケージ化 ドキュメントの整備 テストコードの実装 サーバー(ホスト)の実装 Goで実装 計…

Numpy Style の docstring

リファクタリングしたり、他の人に移譲する時にドキュメントがあったほうが良いよなと思い、Numpy Styleのdocstringを調べた。 numpydoc.readthedocs.io 記述例 def add(a: float, b: float=0.0) -> float: """ Add two floats. Parameters ---------- a : f…

CythonのPickle化

ポインタをもつクラスをPickle化しようとしたらエラーを吐いたので、その対処法のメモ。 __getstate__メソッドの実装 __setstate__メソッドの実装 実装例 その他 参考資料 __getstate__メソッドの実装 ポインタにしているオブジェクトを復元できるだけの情報…

Cythonの問題点と活用法

Cythonの問題点 エディタのサポートが壊滅的 Cythonの活用法 具体的な手順 パッケージの作成 ヘッダの作成 実装 コラム::テストしてみる お片付け Cythonでラップ コンパイル Pythonでラップ 簡単なテスト Cython Tips Cythonの問題点 エディタのサポートが…

実験と実用の乖離

以前、強化学習効率化のために自分の時間リソースを消費して、パフォーマンスの向上を図った。 nnt339es.hatenablog.com実験結果によると、純 Python ならば 400ms かかる処理を 30ms で処理できるはずだ。ところが実際のアプリケーションに導入してみると、…

Cythonバイナリをラップ

前回、Cythonでコンパイルしたモジュールについて、インテリセンスが効かないという点が欠点だと挙げた。 nnt339es.hatenablog.comそこで、このモジュールを再びPythonでラップすることで使いやすさの向上を図ってみた。 ラップ構造 c++ Cython Python c++で…

Pythonのニューラルネット学習を高速化

前回Goでニューラルネットワークを作成して、コンパイル言語らしく良いパフォーマンスを出してくれた。 https://nnt339es.hatenablog.com/entry/2020/11/24/195430nnt339es.hatenablog.comこのままGoに移行しても良いと思ったが、リファクタリングにはそれな…

勾配降下法の計算方法

ニューラルネットワークの学習アルゴリズムのメモ 表記の定義 ネットワークの構造 ウェイト・バイアスの修正方法 計算 出力層である場合 隠れ層である場合 バイアスについて numpyでの実装 表記の定義 定義記号(左辺を右辺で定義) ベクトル: ベクトルの第i…

pyYGOBot

とりあえず概形は作った。 nnt339es.hatenablog.com リポジトリ 導入方法 起動方法 モジュールとして使う 簡単な解説 pyYGO pyYGOenv pyYGOnetwork pyYGOagent agent.py AIパラメータ 学習率 レイヤー構造 活性化関数 報酬 ※注意※ 未コーディング箇所 学習成…

ADS用遊戯王AIプロジェクト

目的 コミュニティ ソースリポジトリ Discord プロジェクト 全般 ユーザーインターフェース 開発言語 プログラム概要 エージェント 概要 ニューラルネットワーク 評価値 カードの埋め込みベクトル 学習の工夫 仮想デュエル 各種WEBサービスについて 目的 本…

遊戯王カードの分散表現その1

遊戯王AIプロジェクトの進捗状況です。以前、カードテキスト分散表現すればより汎用的な状況を理解できるはずだという仮定を述べました。 計算機に遊戯王を理解させる - Just a Note for Hobby 現在はその分散表現を得る機構を、ニューラルネットワーク(NN)…

Node.jsをPython-Likeにする

javascriptを上達させたいけど、非同期ioが足を引っ張って競技プログラミングを解くのには使いにくい。 そこで自前でPythonっぽい関数を実装してみた。 環境 実装した関数 input() 環境 windows 10 node.js 12.18.3 windowsマシンゆえに main(require('fs').…

ニューラルネットワークとその他

最近したことのメモ ニューラルネットワーク作成 マルチスレッド・マルチプロセス Node.js入門 zipファイルダウンロードの自動化 デコレータの応用 コネクトフォーAIの作成 ニューラルネットワーク作成 delta値の計算やweight補正値の計算の際、レイヤーにキ…

Atcoder自動テスト・提出ツールを自作したメモ

環境 使用したモジュール[理解度:10段階] 標準モジュール 外部モジュール 自動テストツール 下準備 webページからテストデータを取得する サーバからレスポンスを受け取る レスポンスからhtmlを抽出する soupから欲しいものを取り出す データを加工 テストデ…