タグ

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

  • 40歳から始める関数型言語、OCaml - すぎゃーんメモ

    動機 Why OCaml 学習方法 Real World OCaml Github Copilot と ChatGPT オンラインジャッジ (競プロ) Advent of Code その次? 所感 関数型という概念 OCamlの書き味 Rust, Python の経験 AIとの親和性 まとめ 某Nさんがここ最近Haskellとか勉強してて楽しそうで真似してみたくなって、自分も今さらながら何か関数型言語はじめてみるか〜と周りに相談したところOCamlをオススメされたので 今年に入ってからひたすらOCaml書く練習してる。AtCoder Boot camp for BeginnersのEasy 100をようやく終わらせたところ。 pic.twitter.com/POBWhvHHCn— すぎゃーん💯 (@sugyan) April 9, 2023 大西さんが動画の中で感極まっていたけど、宮川さ

    40歳から始める関数型言語、OCaml - すぎゃーんメモ
    ryshinoz
    ryshinoz 2023/04/15
  • 2023パズル をRustで解いてみる - すぎゃーんメモ

    tkihiraさんの問題が面白そうだったので挑戦してみた。 2023年クイズ! 上の例のように、数字の合間に四則演算(+−×÷)や括弧を入れることで、2023 を作ってください。 - 数字の間に必ず演算子を 1 つ入れてください - ただし 9 と 8 の間には既に ÷ が入っています - 括弧は複数重ねて使用できます - 10×(-9 ÷ 8) のようなマイナス記号の使用は禁止です pic.twitter.com/K0w2miMXJA— Takuo Kihira (@tkihira) December 31, 2022 既に解説記事が出ているので解答はこちらをどうぞ。 nmi.jp 結局自分は自力では解けなくて 他の人の解法や上記の解説記事を読んでようやくできた、のだけど… 自分なりに理解して改めてRustで実装してみた。 RPN(逆ポーランド記法)の backtracking 探索の高

    2023パズル をRustで解いてみる - すぎゃーんメモ
    ryshinoz
    ryshinoz 2023/01/06
  • Stable Diffusionでmorphing - すぎゃーんメモ

    #stablediffusion 完全に理解した pic.twitter.com/IR5yjnL07Y— すぎゃーん💯 (@sugyan) August 31, 2022 ということで少し触って遊んでみたのでメモ。 Stable Diffusion をザックリ理解 先月公開された Stable Diffusion。 stability.ai 高精度で美しい画像を出力できる高性能なモデルながら、Google Colab などでも手軽に動かせるし、 Apple silicon でもそれなりに動かせる、というのが魅力だ。 中身については 以下の記事の "How does Stable Diffusion work?" 以降のところが分かりやすい。 huggingface.co 図をそのまま引用させていただくと という仕組みになっていて、受け取る入力は "User Prompt" と "Late

    Stable Diffusionでmorphing - すぎゃーんメモ
    ryshinoz
    ryshinoz 2022/09/08
  • TensorFlow 2.0 時代の Keras API での画像分類器 - すぎゃーんメモ

    TensorFlowを初期の頃から触っていて define-and-run の流儀にはそれなりに慣れてしまっていたけど、そろそろTensorFlowも2.0がreleaseされそうだし(2019.09時点で 2.0rc1) 新しいinterfaceも触っておかないと、と思って勉強してみた。 Effective TensorFlow 2.0 を読むと、major changesとして "Eager execution"、recommendationsとして"Keras layers and models"が紹介されている。 これからの時代はKeras APIを使ってEager executionでやっていく必要がありそうだ。 お題: 将棋駒画像の分類 昨年くらいから将棋の画像認識をやろうと思って 駒の画像データセットを作成 していた。今回はこれを使う。 各駒14種の先手・後手で28種、空白マ

    TensorFlow 2.0 時代の Keras API での画像分類器 - すぎゃーんメモ
    ryshinoz
    ryshinoz 2019/09/17
  • TensorFlowで顔検出器を自作する - すぎゃーんメモ

    19日に行われた Kyoto.なんか #3 で発表・デモをさせていただいた内容まとめです。 はじめに: 検出器の重要性 アイドル顔識別 をずっとやっている中で、顔の識別・分類(Classification)はCNNを使って出来ているけれど まだ上手く出来ていない別のタスクがあって。 それが画像内からの顔領域の検出 (Detection, Localization)。 「画像内に写っている人物が誰であるか」を識別するためには、まずはその画像に写っている「顔」を検出する必要がある。 その検出された顔それぞれについて分類器にかけて「この顔は○○さん」「この顔は××さん」と分類していくことになるわけで。 分類器に与える入力画像を切り抜いて抽出するのにもまず顔領域を検出する必要があるし、その分類器を学習させるためのデータセットも、様々な画像から顔領域を検出して切り抜いてそれぞれに対してラベル付けする

    TensorFlowで顔検出器を自作する - すぎゃーんメモ
    ryshinoz
    ryshinoz 2017/08/20
  • TensorFlowによるDeep Learningでのアイドル顔識別モデルの性能評価と実験 その2 - すぎゃーんメモ

    以前に試した、アイドル顔識別の性能評価。 memo.sugyan.com それから半年以上も経ってデータ数も増えたし ちょっと確かめたいこともあったので、再び試してみた。 新データセット 前回は 40人×180件 で 計7,200件 を用意したけど、今回はもう少し多めにデータが集まっていたので(卒業などでもうアイドルではなくなってしまった子も居るけど…)、今回は 120人×200件 で 計24,000件 を抽出してデータセットを作成した。 実際にラベル付けしたデータから抽出してみると、元が同じ画像なのに加工や顔検出器のブレなどで別の顔画像として登録されてしまっているもの、明らかに同じ日・同じ場所で連写していて「ほぼ同じ顔画像」と思われるもの などの重複が結構あることに気付いて、頑張って出来る限り排除した。 前回もある程度は人力でチェックしていたけど、今回は学習済みモデルにわせた中間層出力

    TensorFlowによるDeep Learningでのアイドル顔識別モデルの性能評価と実験 その2 - すぎゃーんメモ
    ryshinoz
    ryshinoz 2017/02/23
  • TensorFlowによるDCGANでアイドルの顔画像生成 その後の実験など - すぎゃーんメモ

    memo.sugyan.com の続編。 あれから色々な変更しつつ実験してみたりしたのでその記録。 結論を先に書くと、これくらい改善した。 DCGAN ざっくりおさらい Generator: 乱数の入力から画像を生成する Discriminator: 入力した画像がGeneratorが生成したものか学習データのものかを判別する という2種類のネットワークを用意し、お互いを騙す・見破るように学習を行うことで Generatorが学習データそっくりの画像を生成できるようになる、というもの 学習用画像の増加 前回の記事では90人の顔画像データから生成していたけど、あれから収集を続けて もう少し多く集まったので、今回は260人から集めた顔画像100点ずつ、計26,000件を学習に使用した。 Feature matching openai.com の記事で紹介されている "Improved Tech

    TensorFlowによるDCGANでアイドルの顔画像生成 その後の実験など - すぎゃーんメモ
    ryshinoz
    ryshinoz 2016/10/13
  • "Write Code Every Day" 1年 - すぎゃーんメモ

    1年前のjava-ja.OSSで @t_wada さんの話を聴いた翌日から実践し始めた"Write Code Every Day"、どうにか1年間つづけることが出来た pic.twitter.com/scVbkZFZI9— すぎゃーん💯 (@sugyan) October 6, 2016 元記事 John Resig - Write Code Every Day 日語訳 毎日コードを書くこと - snowlongの日記 この記事を読んだときは「へー」くらいにしか感じていなかったのだけど、 1年前の10月5日のjava-ja.OSSでのid:t-wadaさんの発表を聴いて、実際に身近な知っている人たちが実践しているのを知って、「よし自分もやってみよう」と始めたのがきっかけ。 OSS についてあれこれ from Takuto Wada www.slideshare.net 元記事で ブログ

    "Write Code Every Day" 1年 - すぎゃーんメモ
    ryshinoz
    ryshinoz 2016/10/07
  • TensorFlowで顔識別モデルに最適化した入力画像を生成する - すぎゃーんメモ

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

    TensorFlowで顔識別モデルに最適化した入力画像を生成する - すぎゃーんメモ
    ryshinoz
    ryshinoz 2016/07/10
  • 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でのアイドル顔識別モデルの性能評価と実験 - すぎゃーんメモ
    ryshinoz
    ryshinoz 2016/06/16
  • TensorFlowでのDeep Learningによるアイドルの顔識別 のためのデータ作成 - すぎゃーんメモ

    続・TensorFlowでのDeep Learningによるアイドルの顔識別 - すぎゃーんメモ の続き、というかなんというか。 前回までは「ももいろクローバーZのメンバー5人の顔を識別する」というお題でやっていたけど、対象をより広範囲に拡大してみる。 様々なアイドル、応援アプリによる自撮り投稿 あまり知られていないかもしれないけど、世の中にはものすごい数のアイドルが存在しており、毎日どこかで誰かがステージに立ち 歌って踊って頑張っている。まだまだ知名度は低くても、年間何百という頻度でライブを中心に活動している、所謂「ライブアイドル」。俗に「地下アイドル」と言ったりする。 ライブアイドル - Wikipedia そういったアイドルさんたち 活動方針も様々だけど、大抵の子たちはブログやTwitterを中心としてWebメディアも活用して積極的に情報や近況を発信していたりする。 そんな中、近年登

    TensorFlowでのDeep Learningによるアイドルの顔識別 のためのデータ作成 - すぎゃーんメモ
    ryshinoz
    ryshinoz 2016/03/28
  • TensorFlowによるディープラーニングで、アイドルの顔を識別する - すぎゃーんメモ

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

    TensorFlowによるディープラーニングで、アイドルの顔を識別する - すぎゃーんメモ
    ryshinoz
    ryshinoz 2016/01/12
  • TensorFlowでのMNIST学習結果を、実際に手書きして試す - すぎゃーんメモ

    Deep Learningという言葉を色んなところで聞くようになり、Googleからも TensorFlow というものが出たし、そろそろちょっと勉強してみるか〜 ということで初心者が機械学習に手を出してみた。 TensorFlowのtutorialを見てみると、まず最初に「MNIST」という手書き文字の識別問題が出てくる。その問題に対して、こういうモデルを作ってこうやって学習させていくと91.2%くらいの識別率になります、さらに飛躍させてこういうモデルでこうやって学習させると99.2%くらいまで識別率が上がります、とか書いてあって、確かになるほどーと数字で納得もできるのだけど、せっかくなら実際にその学習結果を使って自分の書いた数字を識別してもらいたいじゃないか、ということで そういうのを作ってみた。 https://github.com/sugyan/tensorflow-mnist c

    TensorFlowでのMNIST学習結果を、実際に手書きして試す - すぎゃーんメモ
    ryshinoz
    ryshinoz 2015/11/26
  • 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作るのにスクリーンショットなんて必要なかったんや - すぎゃーんメモ
    ryshinoz
    ryshinoz 2014/08/01
  • 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を使ってターミナル操作を早く、便利に。 - すぎゃーんメモ
    ryshinoz
    ryshinoz 2014/06/12
  • rbenvの切り替えの仕組み…と、他言語での実験 - すぎゃーんメモ

    rbenvを使ってみる - すぎゃーんメモの続き。 現時点でのrbenvのバージョンは0.2.1。 rbenvを使っていると.rbenv-versionファイルの有無でrubyコマンド打ったときに実行されるrubyが違うものになる、というのがちょっと新鮮で、これはどういう仕組みで動いているのだろう?と思って少し調べてみた。 上記記事のようにrbenvの設定をした環境では、 $ which ruby /Users/sugyan/.rbenv/shims/rubyとなり、${RBENV_ROOT}/shims以下のrubyを指すことになる。ここへのPATHは$HOME/.rbenv/libexec/rbenv-initに echo 'export PATH="'${RBENV_ROOT}'/shims:${PATH}"' と書かれているので、eval "$(rbenv init -)"してあれ

    rbenvの切り替えの仕組み…と、他言語での実験 - すぎゃーんメモ
  • gitでtree表示するalias - すぎゃーんメモ

    TLで見かけたので自分も適当に設定してみました。 ~/.gitconfigにて [alias] tr = log --graph --pretty='format:%C(yellow)%h%Creset %s %Cgreen(%an)%Creset %Cred%d%Creset' 見やすくてイイカンジですね。

    gitでtree表示するalias - すぎゃーんメモ
    ryshinoz
    ryshinoz 2011/11/03
  • Nodeのホスティングサービスと制限とか - すぎゃーんメモ

    node.js のホスティングサービスまとめ - 自分の感受性くらいで既にまとめられているけれど、自分が使ってみた幾つかのものをまとめてみる。 Joyent no.de https://no.de/ WebSocketは使えるはずなのだけど、いまSocket.IOアプリを手元のMacで試してみている限りではChrome 14.0.835.202とFirefox 7.0.1ではSocket.IOのwebsocket transportにチャレンジして失敗して結局xhr-pollingになってしまう。Safari 5.1.1では問題無くwebsocketで動く。 gitで管理してremoteリポジトリにpushすることでデプロイ。sshログインしての操作も可能。 細かい設定値などはnpm configを使うのが良さげ。 SmartMachinesは以前(8月頃)は3つ以上つくれなかったのだけど

    Nodeのホスティングサービスと制限とか - すぎゃーんメモ
  • github-growler appがSnow Leopardでも使えるようになった - すぎゃーんメモ

    先月くらいから、遅ればせながらgithub-growlerを使い始めてました。 https://github.com/miyagawa/github-growler githubで自分がfollowしているユーザのアクティビティやwatchしているリポジトリの変更がgrowl通知されてすごくイイ。 ただ、.appのアプリはSnow Leopardでは動かなかった https://github.com/miyagawa/github-growler/issues#issue/2 ので、github-growler.plを動かすようにしていた。 けど、今日ついにSnow Leopard対応版がリリースされたようなので早速入れてみました。 Downloads · miyagawa/github-growler · GitHub System PreferencesのAccountsからLogin

    github-growler appがSnow Leopardでも使えるようになった - すぎゃーんメモ
    ryshinoz
    ryshinoz 2011/03/11
  • BPStudy #25 雑メモ - すぎゃーんメモ

    BPStudy#25 : ATNDのメモ。 色々まちがって解釈してるところがあるかも知れませんが、間違いを発見したらDISらずに優しく指摘してください >< サイボウズ・ラボ 奥一穂さん Kazuho@Cybozu Labs Happy Optimization 正しい最適化 プロファイラを使うとか以前の話として 「30%速くなったよ」ではダメ 投入するコストを回収できるかどうか 処理速度には必ず上限がある 「理論上の最速値の70%まで到達」のようなものがgood ではどうやって上限を予測するか 一般的にはIPC(プロセス間通信)のコストがボトルネックになる サーバを単純化してもメリットは小さい とは言えC10Kだとアルゴリズム重要 速度の壁を突破する方法を考える SIMD、圧縮、グループコミット、Lock-free algorithmなど Scaling? 「スケール」とは ムーアの法則

    BPStudy #25 雑メモ - すぎゃーんメモ
    ryshinoz
    ryshinoz 2009/09/27
    [mysql[[scalability]
  • 1