読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

2018-01-01から1年間の記事一覧

囲碁AIアプリの作り方4

追記(2019/02/19) 猛烈に勘違いしていました。 AlphaZeroは、バリューネットワークの出力には[-1,1]レンジを使っていますが、MCTSでは[0,1]レンジだそうです。 talkchess.com 今までのいくつかの謎が氷解しました。 これに合わせてコードのコメントとオリジ…

囲碁AIアプリの作り方4

今日は碁盤描画周りです。間口の一番広いウェブアプリを対象にします。 JavaScriptの碁盤描画のライブラリをまずご紹介します。 eidogo: HTML5以前では事実上のデファクトスタンダードだったオープンソースのウェブアプリです。DOMで描画します。耳赤サイト…

囲碁AIアプリの作り方3

今日はちょっと変わったところで、SGFファイルを扱う方法です。SGFというのは、様々なプラットフォーム上で販売されているSmartGoというアプリケーションのファイルフォーマットです。Smart Game Formatの略で、囲碁以外のボードゲームにも対応可能なフォー…

囲碁AIアプリの作り方2

今日はニューラルネットワーク周りのご紹介です。 前回同様、技術的な話ではないです。どういう材料が利用可能かご紹介します。AlphaGo Zeroは、MCTS、ニューラルネットワーク、強化学習という組み合わせで、0から人類を遥かに超えて学習するAIです。 「莫大…

囲碁AIアプリの作り方1

1日遅れですが、一人アドベントカレンダーを始めます。 (ご協力いただける方、お声がけください) 題して「囲碁AIアプリの作り方」です。 念のため、「囲碁AIの作り方」ではありません。囲碁AI自体を作りたい方はAlphaGo論文などを読んで頑張ってください。 …

AWS LambdaでGnuGo

[追記 2018-11-27] デフォルトの設定では中盤でのGnuGoのestimateがAmazon API Gatewayのタイムアウトである29秒以内に完了しなかったです。AWS Lambdaはメモリを増やすとCPUパワーも増える仕様なので、256MBに増やしたところ、estimateできました。メモリ最…

「囲碁の師匠」絶賛?発売中!

自作のiPadアプリ「囲碁の師匠」が11月16日に発売になりました。以下は紹介ベージです。 https://new3rs.github.io/a_master_of_go/index.ja.html ご興味お持ちいただけたら幸いです。

iOSアプリのシンプルなプライバシーポリシー

この度、iOSアプリを一つ申請し承認いただきました。(契約関係でトラブっていてまだApp Storeには掲載されていません) 6年ぶりのiOSアプリ申請で色々新鮮でした。 中でもすべてのアプリにプライバシーポリシーURLの掲載を求められたことがびっくりしました。…

クラウドでLeela Zeroを動かしてローカルのLizzieで見る

以前、VPSサービスGPUEaterでLeela ZeroとLizzie動かす方法を紹介しました。nextliteracy.hatenablog.comVPSにVNCで繋いて、VPS側でLizzieを動かす方法でしたが、この方法だとVPS側にデスクトップ関連のインストールする必要があってその時間が比較的長く、…

SwiftでSGFをパースしたりその逆をしたりするライブラリを公開しました

github.com

Maximaマニュアルを5.42.0に更新しました。

maxima.osdn.jp置換用パッケージcombinatoricsと最悪ケース解析パッケージwrstcseが追加されましたね。 稚拙な訳ですがご活用ください。

Leela ZeroのウェイトをCore MLで計算させる

AZ.jsをSwiftに移植しました。その際に、Leela ZeroのウェイトをCore ML上に移す作業があったのですが、ハマり所があったので、備忘録です。Leela Zeroのウェイトは、leela-zeroレポジトリのtraining/tfフォルダ以下のスクリプトを使って、TensorFlowに読み…

GeForce RTX 2080 Tiは2枚でAlphaGo Readyと言えるかも(言えないかも)

追追追追記 2019/09/23 Leela Zero 40bがV100で2219プレイアウト/秒出るそうです。20bなら雑に2倍して4438プレイアウト/秒、INT8で2倍になるとして8876プレイアウト/秒。 2枚あれば16000プレイアウト/秒以上出ますね。 V100相当のTuringカードがあれば2枚でA…

GPUEaterでLeela Zeroを動かす

追記 2018/10/06 Leela Zeroのコンパイル手順が古くなっています。 GitHub - gcp/leela-zero at nextの記述に従ってください。 GPUEaterというGPUサーバーレンタルサービスがあります。www.gpueater.comRX Vega 56などハイエンドのPCやワークステーションに…

囲碁AI AZ.js

A9.jsとA19.jsはコードがほとんど同じだったのですが、碁盤サイズに定数を使っていたため、別のレポジトリとして作りました。 メンテの意味でもそれはあまりに残念なので、コードをマージしてリファクタリングしてドキュメンテーションを充実させたAZ.jsを公…

囲碁AI A19.js

以前にA9.jsというブラウザ上で遊べる9路盤囲碁AIを公開しました。 今日は、これの19路盤版、A19.jsを公開しました。 FacebookのELF OpenGoのニューラルネットワークを使っています。iMac Late 2012(GTX-660M)でニューラルネットワークの評価は380ms前後でし…

WGoエディタ再び

2年弱前にWGoエディタというものを作りました。nextliteracy.hatenablog.com新興アプリSabakiが良さげだったので開発をやめました。見立てもよかったようで、今、Sabakiは結構人気のアプリになったようです。 SabakiはLeela/Leela Zeroを使った検討機能も拡…

AlphaGoまとめ

AlphaGo Fan AlphaGo Lee AlphaGo Master AlphaGo Zero (20b) AlphaGo Zero (40b) AlphaZero (20b) ELF OpenGo v1 ELF OpenGo v2 PhoenixGo KataGo 評価ハードウェア 1202 CPU & 176 GPU 48 TPU v1 4 TPU v1 4 TPU v1 4 TPU v1 4 TPU v1 1 V100 1 V100 Tesla…

Meteorを使ったリアルタイムアプリのためのデータ構造

Meteor歴5年で今更感があるのですが。Meteorといえばリアルタイムアプリがターゲットのウェブプラットフォームです。 クライアントとサーバーのDBの同期やリアクティブなレンダリングはとても重宝しています。さて、MeteorのDBのクライアント-サーバ同期の単…

macOS(High Sierra)でTensorFlowをコンパイルする

古いiMac(2012)を使っているのでGPUが馬力がないので、CPUでもIntel MKLを使って高速化をすべく、macOS(High Sierra)でTensorFlowをコンパイルしようとしたら嵌りました。TensorFlowはコンパイル時にデフォルトのApple clangを使うのですが、このclangはOpen…

Web WorkerのためのRemote Method Invocation(RMI)

表題のライブラリを作成しました。 github.com 山口さんが開発されたPyaq(https://github.com/ymgaq/Pyaq)という9路盤の囲碁AIをJavaScriptの移植(A9.js)したのですが、そのときに、 UIのレスポンスを維持するためにAIの演算はワーカーで実行したい でも、ワ…

ChromeでTwitterサイトをアプリっぽくする

Twitter for Macの提供終了が発表されました。 Mac版公式Twitterアプリ、突然の提供終了 - ITmedia NEWS iMacでTwitter for Macを立ち上げて、画面の左側に幅を最小にしていつもTLを楽しんでいる私としてはとても困りました。 なのでChromeでTwitterサイトを…

機械翻訳のオープンソース情報を集めます

追記 ここにたくさん集めてありました。https://github.com/jonsafari/nmt-list Sockeye URL: https://github.com/awslabs/sockeye コメント: Sequence-to-sequence framework プラットフォーム: MXNet Fairseq-py URL: https://github.com/facebookresearch…