タグ

ブックマーク / memo.sugyan.com (59)

  • ISUCON10 予選敗退した - すぎゃーんメモ

    ISUCON10。 今年はあっという間に募集が終わって不参加かな、とも思ったけど 声かけていただき id:Soudai さんと id:kamipo さんと、昨年と同じチームで出場した。 ISUCON9 予選敗退した - すぎゃーんメモ ISUCON9 選12位だった - すぎゃーんメモ とはいえ今年は僕は子も産まれ 京都に移住したのもあって、昨年のように東京で3人集まっての参加は難しく、一人だけ京都の自宅からリモートで繋いで参加、という形になった。 素振り 一応去年組んだメンバーであるとはいえ 敗退しているわけだし、今回は前述のように一人はリモートで作業することになるので練習はしておくべきだろう、ということで 2週間ほど前に1日つかって素振り(練習)をした。 昨年の予選問題はすっかり忘れているのでそれを使って、一日中zoomで繋いで会話しつつ、必要に応じてエディタの画面を共有して一緒に見

    ISUCON10 予選敗退した - すぎゃーんメモ
    mattn
    mattn 2020/09/15
  • Mix Leap Study #29 で話をしてきた #mixleap - すぎゃーんメモ

    大阪で開催された「Mix Leap Study #29 - Step up for TensorFlow」に、縁あってお声がけいただき 20分ほどお話をさせていただきました。 yahoo-osaka.connpass.com TensorFlow関連で、ってことで ここ数年〜最近で取り組んでいる趣味の画像認識について、データセットを集め管理するために取り組んできたことについてデモを混じえて紹介させていただきました。 メインゲストのLaurence氏にも良かったと声をかけていただいたりトークの中で例として引き合いに出して言及してくれたりして 嬉しかったです。 大阪開催のこの規模の勉強会で話すのも始めてで緊張しましたが 懇親会でも多くの方々に声をかけていただき交流できて とても良い時間になりました。 今後もこういうイベントに積極的に出ていけるよう引き続き頑張っていこうと思います。ありがとうござ

    Mix Leap Study #29 で話をしてきた #mixleap - すぎゃーんメモ
    mattn
    mattn 2018/12/05
  • 学習済みMobileNetV2モデルによる推論をTensorFlow.jsとWebWorkerを使ってブラウザ上で実行 - すぎゃーんメモ

    将棋駒画像分類の話の続き。 memo.sugyan.com 学習させたモデルでの分類結果を実際に試すときに Web上でもインタラクティブに出来ると便利そう、と思ってやってみた。 学習させたMobileNetV2のモデルを使ってTensorFlow.jsでの推論をWebWorker経由で行わせて結果表示、ていうのをようやく出来た… pic.twitter.com/L1xwjBSaXo— すぎゃーん💯 (@sugyan) October 7, 2018 学習済みモデルの変換 まずは学習済みのモデルをTensorFlow.js用に変換する必要がある。ここまではPythonの領域。 Importing a TensorFlow GraphDef based Models into TensorFlow.js 普通に tf.train.Saver を使っていると、checkpoint形式でパラメー

    学習済みMobileNetV2モデルによる推論をTensorFlow.jsとWebWorkerを使ってブラウザ上で実行 - すぎゃーんメモ
    mattn
    mattn 2018/11/01
  • TensorFlowで顔識別モデルに最適化した入力画像を生成する - すぎゃーんメモ

    動機 elix-tech.github.io の記事を読んで、「可視化」の項が面白いなーと思って。 引用されている図によると、人間の目にはまったく出力クラスとは関係なさそうに見える画像でもCNNによる分類器は騙されてしまう、ということのようだ。 なるほど分類モデルの方を固定しておいて入力を変数として最適化していけば任意の出力に最適な入力を得ることができるのか、と。 自分でもやってみることにした。 分類モデル TensorFlowによるDeep Learningでのアイドル顔識別モデルの性能評価と実験 - すぎゃーんメモ の記事で使ったモデルとデータセットで、ここではCross Validation用にデータを分けずに7,200件すべてを学習に使い20,000 step進めたものを用意した。 このモデルは学習したアイドルたちの顔画像に対してはかなりハッキリと分類できるようになっていて、試しに

    TensorFlowで顔識別モデルに最適化した入力画像を生成する - すぎゃーんメモ
    mattn
    mattn 2018/11/01
  • TensorFlowによるDeep Learningでのアイドル顔識別モデルの性能評価と実験 - すぎゃーんメモ

    以前から書いているDeep Learningによるアイドル顔識別の話の続き。 コツコツと顔画像収集とラベル付けを続けて、そこそこにデータが集まってきたので ここらでちゃんと性能評価をしてみよう、と。 データセットの作成 今回は、現時点で重複なく180件以上の顔画像が集まっている40人のアイドルを分類対象とした。 対象アイドル一覧 これらのアイドルに分類のラベルindexを振り(推してる順とかじゃなくてランダムにね)、それぞれから無作為に抽出した180件の顔画像をそれぞれラベルとセットでレコードを作り、シャッフルして30件ずつ6つのデータセットに分けて保存。 data-00.tfrecords data-01.tfrecords data-02.tfrecords data-03.tfrecords data-04.tfrecords data-05.tfrecords レコードは、以前の記

    TensorFlowによるDeep Learningでのアイドル顔識別モデルの性能評価と実験 - すぎゃーんメモ
    mattn
    mattn 2016/06/14
  • TensorFlowによるディープラーニングで、アイドルの顔を識別する - すぎゃーんメモ

    以前は MNISTの例を使って画像識別を試してみた けど、次はカラー画像についての識別を試してみる。 「アイドルなんてみんな同じ顔に見える」って 最近も言われてるのかどうか知らないけど、自分もつい5年前くらいまではそう思っていたわけで。その識別を機械学習でやってみよう という試み。 最近はほとんどライブに行かなくなってしまったけど大好きなももいろクローバーZちゃんを題材にしてみることに。 5人のメンバーの顔は機械学習によってどれくらい分類できるようになるのか?? CIFAR-10 CIFAR-10 という、32×32サイズのカラー画像を10種類のクラスに分類する識別課題があり、そのデータセットが公開されている。これを実際にTensorFlowで学習するための畳み込みニューラルネットワークのモデルや関数などがtensorflow.models.image.cifar10パッケージに同梱されて

    TensorFlowによるディープラーニングで、アイドルの顔を識別する - すぎゃーんメモ
    mattn
    mattn 2016/01/12
  • Perl6で記号Hello worldする - すぎゃーんメモ

    一番簡単なHello worldです。 ::('!{.(?'~^'.~!)~'~^')^.^^'~^'?!^?('~^'??)!{')('!?}}~~(!^~{~))(.{~('~^'))?^?.).(?.}?)().!~'~^'~!.?}?~.^.{?!)~}!).'~^'}!!.~(}(!?}~{!}).(('~^')^(^.(.)~?!.()!})?)')普通に実行できると思います。 $ cat hello.pl6 ::('!{.(?'~^'.~!)~'~^')^.^^'~^'?!^?('~^'??)!{')('!?}}~~(!^~{~))(.{~('~^'))?^?.).(?.}?)().!~'~^'~!.?}?~.^.{?!)~}!).'~^'}!!.~(}(!?}~{!}).(('~^')^(^.(.)~?!.()!})?)') $ perl6 hello.pl6 Hello,

    Perl6で記号Hello worldする - すぎゃーんメモ
    mattn
    mattn 2015/10/22
  • Herokuで動かせるSlack用げんきだしてHubot - すぎゃーんメモ

    げんきだしてbot - すぎゃーんメモ を作ってから2年ちょい。Twitter BOTからHubotへ。 げんきだしてbotのslack版ほしい 2015-02-17 16:02:14 via Twitter for Mac @kazeburo なんとなくHerokuで動かせるHubotできました URL 2015-02-17 17:39:05 via Twitter for Mac to @kazeburo というわけで @genkidashitebot の Hubot 版を作ってみた。 https://github.com/sugyan/genki-bot-slack Hubotってほとんど触ったことがなかったので勉強になる。 npmでinstallして作ってみようとすると、hubotコマンドから作成するのは既にdeprecatedになっているそうで、yeomanを使え、って言われる。

    Herokuで動かせるSlack用げんきだしてHubot - すぎゃーんメモ
    mattn
    mattn 2015/02/18
    死なないで、げんきだして!
  • ttyrecordからGIF作るのにスクリーンショットなんて必要なかったんや - すぎゃーんメモ

    先日 ターミナル操作の記録(ttyrec)からGIFアニメを生成するツールを作った - すぎゃーんメモ を書いたところ、思っていた以上に反響があって。 自分的にも結構便利だなーと思っていたのだけど、 ttygifとその系列、端末マニアではない人の95%くらいのユースケースでは端末に依存するシーケンスとか流さないだろうし、色とかが微妙に違ってもそこが主眼じゃないと思うので、単純に内部に端末を持ってダイレクトにGIFを吐ければ良くて、いちいちスクリーンショト取るの筋悪ではないの? 2014-07-24 21:45:33 via Twitter Web Client という意見をいただいて。うーん 確かに、と。 C版 で、はやくもそういうのを実現するものが作られました。すごい。 https://github.com/saitoha/seq2gif こんなカンジで使える。 エスケープシーケンスの処

    ttyrecordからGIF作るのにスクリーンショットなんて必要なかったんや - すぎゃーんメモ
    mattn
    mattn 2014/07/30
  • ターミナル操作の記録(ttyrec)からGIFアニメを生成するツールを作った - すぎゃーんメモ

    ttyrec で録画したデータを使ってターミナル上で再生しつつ、そのスクリーンキャプチャを使ってアニメーションGIFを生成するツールをGoで作ってみた。 https://github.com/sugyan/ttygif Releases Mac, Linux Desktopで動作。再生速度はオプションで変更可能。 背景 percolを使ってターミナル操作を早く、便利に。 - すぎゃーんメモ のような記事を書いたりする際に、ターミナル操作を録画してGIFアニメにしたい需要があり。 そういった用途に使える汎用のデスクトップ録画ツールとしてはLICEcapやGifzoなどがある。 Cockos Incorporated | LICEcap http://gifzo.net/ これらはWindows, OSXあたりが対象で、Linuxの場合はまた他のツールがあるらしい(よく知らない)。 汎用的なキ

    ターミナル操作の記録(ttyrec)からGIFアニメを生成するツールを作った - すぎゃーんメモ
    mattn
    mattn 2014/07/19
    cool!
  • Goで全裸 - すぎゃーんメモ

    Pure Go で辞書同梱な形態素解析器 kagome を公開してみました - Qiita という記事を見て、「Go形態素解析できれば @zenra_bot もGoで作れる!」と思い、とりあえず全裸にするやつ作ってみた。 https://github.com/sugyan/go-zenra やってることは 全裸で形態素解析をするスクリプト - すぎゃーんメモ と同じで。 Kagome が MeCab と同様に形態素解析してくれる(同じ辞書を使っているらしい)ので、基的にはそれを使って動詞の前に「全裸で」を挟み込むだけ。 $ go get github.com/sugyan/go-zenra/cmd/zenrize $ echo 'Goを書いてます' | zenrize Goを全裸で書いてます $ cat input.txt そうだ!嬉しいんだ生きる喜び たとえ胸の傷が痛んでも 何の為に

    Goで全裸 - すぎゃーんメモ
    mattn
    mattn 2014/07/11
    全裸でブクマ
  • 断続的にデータを受けながら並行で時間差リアクションを行う - すぎゃーんメモ

    はじめて、の次のGo - すぎゃーんメモ にて作った go-genki-bot 、UserStreamからTweet取得して返信するところの処理が微妙なかんじで mattnさんやlestrratさんなどからアドバイスいただいたりした。 Goっぽい書き方で上手く並行処理をさせたい。 お題 「断続的にやってくるデータを受け取り表示しつつ、特定の条件のデータに対して遅延させた処理を行なう。」 例えばIDとText付きで送られてくるデータに対して逐次内容を表示させつつ、Textが"message0"というモノが来た場合は1秒待ってからそのIDを表示する。 1. for文の中で全部やる package main import ( "fmt" "log" "math/rand" "time" ) // Message type type Message struct { ID int Text str

    断続的にデータを受けながら並行で時間差リアクションを行う - すぎゃーんメモ
    mattn
    mattn 2014/07/06
  • はじめてのGo - すぎゃーんメモ

    今さらながら、Goをもう少し読み書きできるようになりたいな、と思い。 A Tour of Go を一通り読んで、 GitHub - mattn/twty: command-line twitter client written in golang go-oauth/examples/twitter at master · garyburd/go-oauth · GitHub などを参考にしつつ、写経というかんじで Twitterのtimelineを取得するものをまずは書いてみた。 package main import ( "encoding/json" "fmt" "github.com/garyburd/go-oauth/oauth" "github.com/typester/go-pit" "log" "net/http" "os/exec" "runtime" ) func mai

    はじめてのGo - すぎゃーんメモ
    mattn
    mattn 2014/06/25
  • percolを使ってターミナル操作を早く、便利に。 - すぎゃーんメモ

    先日、shell勉強会で「zawを使ってシェル操作を快適に」というお話を聴いて、自分ももう少しそのあたりの環境を整えよう、と思い立った。 nanapi勉強会 vol2 - Shellの活用でこれだけ毎日が便利になる - nanapi勉強会 | Doorkeeper zawで快適シェル生活 // Speaker Deck 自分が使う選択をしたのは zaw ではなく percol 。 軽く調べてみたかんじでは zawってのは設定してある(もしくは自作する)決められたsourceを使って決められた操作を行うもので、zshに密接に結び付いているツールで。percolはそういうのではなく純粋に「入力をフィルタリングする」だけのツールなので、パイプなどを使って各コマンドと組み合わせることで色々な使い方ができそう。 percolの導入 https://github.com/mooz/percol Pyt

    percolを使ってターミナル操作を早く、便利に。 - すぎゃーんメモ
    mattn
    mattn 2014/06/12
    まぁ、canything なんだけど使い方次第で広がるよねー。
  • 64通りのkamipoを出力する - すぎゃーんメモ

    発端 @Kamipo 2014-04-22 21:06:52 via Twitter for Mac to @kamipo @sugyan 2014-04-22 21:06:57 via YoruFukurou to @sugyan @KAMIPO 2014-04-22 21:10:34 via Twitter for Mac to @kamipo @kamipO 2014-04-22 21:10:59 via Twitter for Mac to @kamipo @kamIpo 2014-04-22 21:11:04 via Twitter for Mac to @kamipo @kAmipo 2014-04-22 21:11:10 via Twitter for Mac to @kamipo @KaMiPo 2014-04-22 21:11:33 via Twitter for Mac

    64通りのkamipoを出力する - すぎゃーんメモ
    mattn
    mattn 2014/04/25
  • #isucon 2013で優勝しました - すぎゃーんメモ

    第三回 ISUCONの選に、参加しました。予選から引き続き、@kazeburoさん、@tagomorisさんとの「LINE選抜チーム」。 #isucon 2013予選に参加した - すぎゃーんメモ 第三回 #isucon 選リアルタイムフォトレポート【更新終了】 : ISUCON公式Blog 結果はなんと、優勝!! おや、優勝2回目だ。→第1回のとき タイムライン 予選のとき同様に、自分の手元にある記録と記憶を辿ってどんな雰囲気だったか書き残してみます。間違っていたらゴメンナサイ。 使用言語はPerlです。 〜10:00 出社…じゃなくて会場入り。ちゃんと前日に早寝したので寝坊せずに済みました。 〜11:00 開会待ち。早くきすぎた、でも他の参加者さんたちも早くからしっかり集まってる。 ルール説明。ストーリー仕立てで緊張感が走る。画像系サービスか〜。 11:00〜 開始。用意されたのは

    #isucon 2013で優勝しました - すぎゃーんメモ
    mattn
    mattn 2013/11/10
  • 数十行の簡単なスクリプトでWebコンテンツの更新を検知し通知する - すぎゃーんメモ

    以前にも似たようなのは書いたのだけど。 某アイドルグループに、ついに待望のファンクラブが作られた。もちろんすぐに入会しました。 そこではその子たちのマネージャーさんが不定期に日記を更新してくれるのだけど、残念なことにRSSとかも無いし、自分でログインして覗いてみないと更新されているかどうかを知ることができない。 自動化せずにはいられない。 ということで、更新チェックするプログラムを書くのだけど、、、 コンテンツが「更新されたか否か」を判定するためには、「一定間隔でコンテンツの内容をチェック」し、「前回チェックしたときと比較して差異があるか否か」を調べる必要がある。 「一定間隔で内容をチェック」すること自体は、cronなどを使えば簡単にできる(ここではWWW::Mechanizeでログイン、Web::ScraperでコンテンツHTMLの解析を行う)。 けど、「前回チェックしたときと比較して差

    数十行の簡単なスクリプトでWebコンテンツの更新を検知し通知する - すぎゃーんメモ
    mattn
    mattn 2012/08/14
    feed形式に加工してXML::Feed::Deduper使うのもありかも。
  • face.comのdetect APIを使ったら目からビームが捗った話 - すぎゃーんメモ

    目からビームな画像を生成するWebサービスを作った - すぎゃーんメモの続き。 6月27日発売、ももいろクローバーZの「Z女戦争」。ついにMVも公開されました。 自分の中では最高にツボっていて、どストライクです。これはヤバい。大好きです。 発売まであと2週間、超楽しみですね。 Z女戦争 アーティスト: ももいろクローバーZ出版社/メーカー: キングレコード発売日: 2012/06/27メディア: CD購入: 2人 クリック: 114回この商品を含むブログ (47件) を見る で、先日「目からビーム画像ジェネレーター」を作ってみたのだけど、公開したところ最初に使っていた「顔ラボ 顔検出WebAPI」があっという間に利用可能回数制限に引っかかってしまい、使えなくなってしまった。 何か他に使えるものあれば入れ替えよう、と探していたところface.comのAPIを教えていただいた。 @sugyan

    face.comのdetect APIを使ったら目からビームが捗った話 - すぎゃーんメモ
    mattn
    mattn 2012/06/13
    応用して鼻水垂らすのも出来そう
  • 目からビームな画像を生成するWebサービスを作った - すぎゃーんメモ

    ももいろクローバーZのニューシングル「Z女戦争」が6月27日に発売されます。 Z女戦争(初回限定盤A)(DVD付) アーティスト: ももいろクローバーZ出版社/メーカー: キングレコード発売日: 2012/06/27メディア: CD購入: 4人 クリック: 433回この商品を含むブログ (57件) を見る で、それに先立って公開された新衣装でのアー写が、何故かメンバーが目からビームを放っているものだった。 ももクロ「いいとも」テレフォンショッキングに再び登場 - 音楽ナタリー これに影響を受けて、周りのももクロクラスタの方々が次々にTwitterの自分のアイコン画像を加工して目からビームを放っているものに変更していたりしたのだけど、それなりに画像を加工するツールやテクニックがないと難しいし、手間もかかる。「もっとカジュアルに目からビームを放ちたい!」という需要もあるのではないかと思い、自動

    目からビームな画像を生成するWebサービスを作った - すぎゃーんメモ
    mattn
    mattn 2012/06/07
  • GNTPとRemoteForwardを使ってGrowl 1.3にリモートマシンから通知する - すぎゃーんメモ

    今更ながらMac OS X Lionを使い始めていて(マウススクロールが逆になったのはあまり問題なく慣れた)、そういえば10.7向けのGrowl 1.3以降ではGNTPがサポートされているから以前にチャレンジしようとして失敗したリモートマシンからの通知も簡単にできるようになったはず、と思って試してみた。 簡単にGNTPを使えるGrowl::GNTPを使用。 Yasuhiro Matsumoto / Growl-GNTP - search.cpan.org まずはちゃんとコレを使って通知ができるか試してみる。 #!/usr/bin/env perl use strict; use warnings; use Growl::GNTP; my $growl = Growl::GNTP->new; $growl->register([ { Name => 'hoge' }, ]); $growl-

    mattn
    mattn 2012/02/22