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

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

サーバー on RaspberryPi を外部に公開

ラズパイを買ってスクレイピングやテスト環境として稼働させていたが、家庭内LANからしか利用できないのをもったいなく感じていた。 そこで何とかLAN外部からのアクセスを無料で実現する方法の調査結果および数日間の奮闘記を記す。 手っ取り早く実装したい…

パワポケ11ハタ人間1章攻略ルート

前田投手の綺麗なスライダーを見たら空振り三振を取りたくなったのでパワポケ11でペナントレースでもやろうと思ったら、手違いでデータが初期化されてしまった。 裏サクセスは表サクセスやグッピーとは違い、一度のクリアで最終的に高性能選手を量産できるよ…

Julia + Jupyter + VSCode + Windows10 でNotebook to PDF

以前導入したJuliaのJupyter環境をリセットして、再度セットアップしようとしたら死ぬほど詰まったのでメモ。 はじめに 環境 Juliaのインストール Juliaのパッケージ Jupyter Notebookのインストール VSCodeのインストールと拡張機能 Notebookの作成とグラフ…

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-…

OpenGLで遊ぶ

OpenGLを触るきっかけがあったのでfreeglutで遊んでみた。 かわいい。 よく使ったオブジェクト 球 void gluSphere( GLUquadric *qobj, GLdouble radius, GLint slices, GLint stacks ); GLquadric *qobj quadricオブジェクトのポインタ。 初学者なのでquadri…

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…

Dockerfile

将来的にOSが変わったりしてライブラリで詰まったりしたら嫌だなぁ、と思い開発環境をDockerで整えることにした。 Docker Dockerfile VSCodeとの連携 Docker Remote - Container Docker コンテナ作るやつ。カーネルはホストOSのものを使うからゲストOSが要ら…

ハタ人間パーティー

100階攻略したことを踏まえて、構成してみたかったパーティーについて。 パーティ構成 逆手パ 速射パ 逆手パ パーティに必要なスキル 火力パーティ 主人公のスキル 主人公に《速射》は必要か? 主人公に素早さは必要か? 主人公の恐怖耐性 雑談 パーティ構成…

闇の誘惑解除記念

まだまだ戦えると思う(誰もが扱えるとは言ってない)。 FAQ(?) 構築編 《サンダー・ドラゴン》入れないの? 入れたのも組んでるけど皆も組んでいるのでわざわざ公にする必要がない。 《混沌領域》入れないの? 入れたのも組んである。《サンダー・ドラゴン…

ハタ人間二章武器・アクセサリ攻略

パワポケ11裏サクセス怪奇ハタ人間2章を攻略する上で合成すべき武器・アクセサリをまとめる。基本的に挙げたもの以外を作る必要はなく、同じものを作り続けて良い性能のものを引いた方が良い。 1~20階 武器 アクセサリ 20~40階 武器 アクセサリ 40~60階 武器…

TCGエージェント第4モデル

TCG学習モデルと問題点 - Just a Note for Hobby単純なモデルを構成して、再探索を試みる。 モデル4 更新式 手法 結果 補足: Evaluate方法 考察 モデル4 更新式 :自分のアド - 相手のアド :割引率ネットワークの出力層の活性化関数をLinearにしたため、報酬…

CythonのPickle化

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

TCG学習モデルと問題点

実は重大なミスが発覚して、実験結果は全く無意味なものである。 モデル1 仮定 更新式 結果 考察 モデル2 仮定 更新式 結果 考察 モデル3 仮定 更新式 結果 考察 モデル1 仮定 アクションがターンの最後の方であるほど、そのターン中に獲得したアドバンテ…

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に移行しても良いと思ったが、リファクタリングにはそれな…

継承の問題点

2週間ほど前にGois Godを始めて、言語の特徴として継承がないことに驚いた。 今まで触れてきた言語は皆オブジェクト指向で継承システムを有していたので、新しい言語(2000年以降に開発された言語を指す)が継承をサポートしていないことに違和感を覚えたので…

勾配降下法の計算方法

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

pyYGOBot

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

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

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

WindBotをコマンドラインから起動

今日は半日 「WindBot」のソースを読んで、半日「WindBot」の起動に苦しんだ。 WindBotの概要 リポジトリ C# ADSとの関係性 エントリポイント 大まかな仕組み WindBotの起動 起動に必要な引数たち 引数がわからない なぜか上手くいかないビルド 無駄な数時間…

過去の遺物(リプレイ集)

過去の遺物(リプレイ)をここで閲覧できます。昔クラウド上に保存するという発想が無くて、容量確保のために多くのリプレイ動画を削除してしまったことが悔やまれます。 (ちなみに過去にブログやtwitterに挙げたものは全て削除されています) 【サンダード…

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

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

計算機に遊戯王を理解させる

さて、コンピュータと遊戯王その2です。ADSのコードは順調に解読できていて、メインフレームやコア、イベント管理など把握はできました。どうやらADSはソケット通信でサーバーとクライアント間のイベントをやり取りして、それをサーバー側のコアが処理して…

ADSのビルドに21時間かけた話

AI作るにあたりADSと連携できないかとファイル漁ってたら、どうやらGithubに公開されているらしいので見に行くと、C++とLuaで書かれていたのでとりあえずソースからコンパイルして実行できないか試してみた。 github.comプロジェクトになれていない私には睡…