Skip to content

Instantly share code, notes, and snippets.

@hotchpotch
Created November 11, 2021 08:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hotchpotch/3b9e9089f37eb4d9d2704632abfea0cb to your computer and use it in GitHub Desktop.
Save hotchpotch/3b9e9089f37eb4d9d2704632abfea0cb to your computer and use it in GitHub Desktop.
toruby 175th の自己紹介がてらのプレゼン

自己紹介

  • 舘野祐一, id:secondlife (セコン), @hotchpotch
  • 10月末〜🍆塩原市在住
  • toruby 初心者
  • 世界一周の中断中
    • 6ヶ月20カ国
  • 2021は機械学習エンジニア

機械学習といえば

  • メインの言語は Python
  • 機械学習のエコシステムがやたら整っている

Rubyist が見た Python

  • 言語的なもの
  • 型ヒント的なもの
  • 利用シーン的なもの

言語的なもの

Ruby と感じた違い

  • 関数がファーストクラス
    • Ruby は Proc(手続きオブジェクト)
  • 実行時処理イテレータが基本
    • map, filter など

関数がファーストクラス

  • 例えば String#join
  • Ruby は Proc(手続きオブジェクト)

イテレータは実行時処理

  • map, filter など、組み込み各種から Iteratable を返す
    • map 等を適用しただけでは実行されない
    • 最初は [] に直接アクセスできずに面倒
    • yield になれる(generator作る)と、そういうもんだなと
    • 実行を遅らせられる、タイミングを決められるので、分散処理などが楽
  • 継承図

型ヒント

利用シーン

  • 機械学習
  • 機械学習開発は通常のソフトウェア開発と異なる
    • ソフトウェア開発の諸先輩方の前で話すのはアレですが…
    • ソフトウェア開発は機能の要件定義、テスト、実装
  • 機械学習はデータをこねくり回したり、実装しながらデータを学習させる
    • 求めたい結果がでるまでは試行錯誤のプロセス
    • 結果が出てから、きちんとした実装にうつる
    • そのため「特定のデータ環境がある環境で、どれだけ試行錯誤できるか」が重要

進化したノートブック

  • Ruby は irb, pry があって超便利!
  • Python は pry 的なものは Ruby より使いにくいが、Jupyter Notebook (ノートブック)がある
    • こねくり回しやすさ・試行錯誤しやすさ・共有しやすさ
  • VSCode なら、コード中にもかける
  • github や colab で機械学習コードを共有

ノートブック便利

Google Colab

  • フルマネージドなノートブックサービス
    • インスタンスは最長24時間で死ぬ(colab pro の場合)
    • が、揮発するため再現性を意識できて良い
    • 実行コードがどの環境でも再現する
  • 何でもやれる

colab + ruby

両方を触ってみて

  • Ruby が書ければ Python もすぐ書ける
  • 言語的には Ruby がやはり好き
    • 驚き最小の原則
    • 書いていて「楽しい」
  • Python は型ヒント(VSCode)でどうにかする
    • 驚く挙動が多いが、docstring でのドキュメントがしっかりしている
  • ノートブック (とそれを取り巻くエコシステム)はめちゃ便利
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment