Slackの家庭内日記をはてなブログに同期していく

弊家庭ではSlackを日記ツールとして使っていて、 #diary channelに夫婦1日1投稿ずつ3~4行程度で今日あったこと・子の成長記録・感想などを書く、というのを続けてるんすよね。SNS感覚で気楽に書けて編集も出来るし遡ったり検索したりしやすくて何気に便利だ…

Rustで将棋棋譜変換ライブラリを作った

将棋棋譜の形式色々 KIF CSA USI/SFEN 文字表記 その他 JSON棋譜フォーマット(JKF, json-kifu-format) 自作parser, converter クレート公開 Rustでjson-kifu-format互換の将棋棋譜変換ライブラリを書き始めていて、ついに分岐までちゃんと対応した.kifファイ…

SIMDによる将棋Bitboard計算の高速化

自作Rust製将棋合法手生成ライブラリ、計算の高速化のためBitboardの128bit計算をSIMDで行うようx86_64のAVX2、AArch64のNEON、wasm32のsimd128で動くようにそれぞれ実装して 各環境で多少速く探索できるようになった。https://t.co/h7Dz3X6BhT— すぎゃーん …

Bitboardでleading/trailing zerosを使って飛び駒の利きを求める

前置き 飛び利き計算いろいろ 基礎知識 縦型Bitboardでの香車の利き 角行・飛車の利き (Magic Bitboard / PEXT) Qugiyの手法 Leading/Trailing Zerosを使う 実験と考察 前置き Rustで将棋の高速合法手生成ライブラリを作り始めていて、 Rustでつくる もう一…

Rust+WASMでつくる、ブラウザ上で動く詰将棋Solver

成果物 Rust製ソルバの改良 探索部の抽象化 探索打ち切りのための拡張 WebAssembly化 将棋Player (自作WebComponents) まとめ 成果物 https://sugyan.com/tsumeshogi-solver-wasm/ 局面を編集し指定し、その局面からの詰み手順を探索する。クエリパラメータ…

Rustで将棋合法手生成、速度改善

memo.sugyan.com の続き。 前記事時点でだいたい合法手の生成が出来ていたが、速度面でやや問題があった。 perft の計測してみるとRust版Aperyと比較して2倍程度遅い。 だいたい同じ手順になるよう実装しているはずなんだけど どうしてそんなに差がついてい…

Rustでつくる もう一つの将棋ライブラリ

昨年末に出版された「強い将棋ソフトの創りかた」という本を読んで、自分も将棋AIを作ってみたいと思った。 強い将棋ソフトの創りかた作者:山岡忠夫,加納邦彦マイナビ出版Amazon この本では主にPythonでの実装が紹介されていたが、自分は最近はRustが好きな…

Rustでつくる詰将棋Solver その後

memo.sugyan.com の続き。1ヶ月ほど経ってちょこちょこ更新して進化した。 残課題が幾つかあったが、そのうち幾つかは解決した。 探索無限ループ 上図のような問題で ▲4四飛成 △3二玉 ▲4一竜 △3三玉 ▲4四竜 △3二玉 ... を無限に探索してしまっていた問題。 …

Rustでつくる詰将棋Solver

ついカッとなって先週からRustで詰将棋ソルバを書き始めてしまい、ようやくdf-pnで何らかの解答を出せるようになったところ。ここからもうちょっと調整していくぞ、、 pic.twitter.com/XM9iPJqocv— すぎゃーん (@sugyan) November 2, 2021 というわけで突然R…

creative codingに入門してみている

子ゃーんに喜んでもらいたくて、creative coding入門してp5.jsで色々作る練習してる。今はフワフワでキラキラな可愛いシャボン玉を表現しようと試行錯誤しています pic.twitter.com/qGeRYCelqh— すぎゃーん (@sugyan) October 6, 2021 動機・目的 上記の通り…

ISUCON11予選のNode.js実装を書いた

ISUCON11 予選おつかれさまでした。 ここ数年は参加者として予選敗退を繰り返してきたのだけど、今年はちょっと違う関わり方をしてみるか、と思い 「参考実装の移植」に立候補してみました。 isucon.net Node.js担当として採用していただき、ちょっと不安も…

3Dモデルを動かせるアプリをPWAで作る

乗り物大好きな子ゃーんに遊ばせてあげよう、と 救急車の3Dモデルデータを購入してThree.jsでグリグリ動かせるようにしてPWAにしてあげた pic.twitter.com/61MUg3MrOR— すぎゃーん (@sugyan) August 1, 2021 子(1歳5ヶ月)が最近すごく消防車とか救急車に興味…

StyleGAN2で属性を指定して顔画像を生成する

memo.sugyan.com の記事の続き(?)。 ある程度の学習データを収集して学習させたモデルが出来たので、それを使って実際に色々やってみる。 StyleGAN2-ADA 学習 mapping出力と生成画像 生成画像の属性推定結果から潜在空間の偏りを抽出 表情推定 顔姿勢推定 …

N番目の素数を求める

SNSなどで話題になっていたので調べてみたら勉強になったのでメモ。 環境 Pythonでの実装例 例1 例2 例3 エラトステネスの篩 Rustでの実装例 試し割り法 エラトステネスの篩 アトキンの篩 おまけ: GMP Benchmark 高速化のテクニック 上限個数を見積もる Whee…

Advent of Code 2020 完答した

昨年はじめて真面目に挑戦した、Advent of Code。 memo.sugyan.com 今年もやるぞー!と意気込んで、12月になる前からちょいちょいTwitterで宣伝したりした甲斐もあってか、今年は日本国内でも挑戦している人が少し増えたようだった。嬉しい。 僕は昨年に引き…

顔画像生成のためのデータセットを厳選する

memo.sugyan.com の記事を書いてから10ヶ月も経っていた…。 Twitterからアイドルの自撮り画像をひたすら収集 dlib で顔検出し、各部位座標を利用して正規化し切り抜き Webアプリで管理、選別作業 選別作業自体を分類モデルに学習させて半自動化 というところ…

ISUCON10 予選敗退した

ISUCON10。 今年はあっという間に募集が終わって不参加かな、とも思ったけど 声かけていただき id:Soudai さんと id:kamipo さんと、昨年と同じチームで出場した。 ISUCON9 予選敗退した - すぎゃーんメモ ISUCON9 本選12位だった - すぎゃーんメモ とはいえ…

StyleGAN2学習済みモデルを使って任意の画像を生成させる

memo.sugyan.com の続き。 StyleGAN2 は "mapping network" と "synthesis network" の2つのネットワークで構築されていて、画像の生成を行う synthesis network への入力 dlatents_in を変化させていくことで様々な変化を出せる、というものだった。 前回は…

StyleGAN2学習済みモデルを使ったmorphing、latent spaceの探求

学習データはまだまだ収集途中だし 学習もまだ完了とは言えない状態なのだけど、なんとなくそれっぽい顔画像は生成できるくらいまでは出来てきているので、それを使った実験をしてみている。 学習した生成モデルを使って morphingを試してみてる #StyleGAN2 …

StyleGAN2による画像生成をCPU環境/TensorFlow.jsで動かす

memo.sugyan.com の続き。 ようやくTensorFlow.jsを使ってブラウザ上で動かせるようになったので、そのためにやったことメモ。 うぉぉついにようやく、 #StyleGAN2 のpretrained-modelを #TensorFlowJS で動かすことが出来たぞ!!!!!!!!! pic.twitte…

StyleGAN2による画像生成をJSで動かしたい

memo.sugyan.com ということで 多少集めることができた画像データを使って、StyleGAN2を使って生成を試してみた。 github.com StyleGAN2 がゼロから学習してアイドルの顔画像っぽいものを習得していく過程、こんな感じ pic.twitter.com/jTofmFBlxF— すぎゃー…

顔画像生成のためのデータセットを作る

動機 TensorFlowの登場をきっかけに 機械学習によるアイドル顔識別 という取り組みをしていて、3年以上かけてコツコツとアイドルの自撮りを収集してラベルをつけてデータセットを作ってきたけど、 アイドルヲタクはもう辞めてしまって 現場にも全然行かなく…

Advent of Code 2019 に挑戦している

Advent of Code というのがある。 https://adventofcode.com/ 日本ではまだあまり 知っている人/やっている人 は多くないかもしれない。検索してみても、日本語の紹介記事はこれくらいしか見つからなかった。 Advent of Code の紹介 - Qiita 僕も、去年 元同…

ISUCON9 本選12位だった

ISUCON9 予選敗退した って書いたんだけど、アレがアレして色々あって、やっぱり本選に出場できることになったので参加してきた。 「失敗から学ぶISUCONの正しい歩き方」チーム、最終結果は12位でした。 12位でした pic.twitter.com/HZZU6GbJgW— すぎゃーん …

TensorFlow 2.0 時代の Keras API での画像分類器

TensorFlowを初期の頃から触っていて define-and-run の流儀にはそれなりに慣れてしまっていたけど、そろそろTensorFlowも2.0がreleaseされそうだし(2019.09時点で 2.0rc1) 新しいinterfaceも触っておかないと、と思って勉強してみた。 Effective TensorFlow…

ISUCON9 予選敗退した

ISUCON9。今年は縁あって声かけていただき id:Soudai さんと id:kamipo さんと、「失敗から学ぶISUCONの正しい歩き方」というチームで出場した。 練習会 インターネット上でよく知っている人たちとはいえ 実際に一緒に仕事をしたことも無ければチームを組ん…

電子工作 5作目・Claw44

HelixPico、Mint60、ErgoDash、Corne Cherry に続いて、自作キーボード 5作目。 はじめての電子工作: HelixPico - すぎゃーんメモ 電子工作 2作目・Mint60 - すぎゃーんメモ 電子工作 3作目・ErgoDash - すぎゃーんメモ 電子工作 4作目・Corne Cherry - すぎ…

TensorFlow.jsがChromeでWebWorker上でもWebGL backendで動く

tensorflow.js は処理の重さ的に worker で動かしたいのだがまだ WebWorker で動かすと cpu backend に fallback してしまうので、この issue ずっとみてる https://t.co/KYGEQSFwq5— 無糖派層 (@mizchi) July 30, 2019 僕も以前にWebWorker上でTensorFlow.j…

TOKYO IDOL FESTIVAL のタイムテーブル画像化ツール 2019

来月開催のTOKYO IDOL FESTIVAL (#TIF2019)、自分の行きたいところだけ選んで組んだタイムテーブルをこんな感じに1枚絵の画像で生成できるWebアプリを今年も作りました。ご自由にお使いください https://t.co/OvzLbmHXGS #TIF2019_MyTT pic.twitter.com/gxO8…

AtCoder水色

今年の2月くらいから始めたAtCoderで、ようやく水色ランクに到達できた。 苦節4ヶ月半、ようやくAtCoder水色になれた…! pic.twitter.com/pzVb1kZP3L— すぎゃーん (@sugyan) June 22, 2019 水色 (Bランク R1200~1599 上位15%) 水色はかなり優秀です。 AtCode…