プログラムにするまでもないけど、ちょっとこんな感じのコードどうかなを試す上で便利なJupyter Notebook。 私は大学在籍中に研究に使用するPythonのコードをJupyterで書いて、グラフ化して共有などを行っていました。
そんな便利なJupyter Notebookですが、Kernelを追加することで他の言語にも対応します。 今回取り上げるC# Kernel、実は今までにも他のものがあったのですが、期待できそうなものが出てきたので紹介します。
++C++; さんでも取り上げたことのある、覚えている人はあーそんなのも…という、あれです。
ピックアップRoslyn 5/19: dotnet-try, .NET Core 3.0 パフォーマンス、null 許容参照型の仕様改善 | ++C++; // 未確認飛行 C ブログ
他のリポジトリやコードを眺めていたら動いた、みたいな感じで現時点完全にUn-documentedな機能ではあるので紹介するのもどうかなとは思いましたが、色々触ってフィードバックする人が増えたらと思ったので使い方を載せていきます。
Pre required
- .NET Core SDK 3.0.100
- Jupyterが動く環境
インストール方法
- https://github.com/dotnet/try#installing-preview-builds-from-master の説明どおりにpreviewバージョンをインストール
dotnet try jupyter installでJupyter Kernelファイルをインストールする
Macだったら ${HOME}/Library/Jupyter/kernels/.net-{csharp,fsharp} ディレクトリが掘られます
インストールも使う準備もこれで完了です。簡単ですね。
使ってみよう
Jupyter Notebookを開いてKernelを選択すると使い始めることが出来ます。 嬉しいことにNuget Packageも使うことが出来ます。
使用する場合は
#r "パッケージ名"
みたいな感じで使用するパッケージ名を指定し、あとはusingでネームスペースを指定します。
サンプルプロジェクトが
try/Samples at master · dotnet/try · GitHub
で公開されているので、気になった方は見てみてください。
今後アツそうなC# で機械学習
一番自分が おっ ってなった部分はここらへんでした。 というのも最近自分の中でもホットなML.NETのIssueを眺めていたら
Graphs/Plots of Evaluation Metrics · Issue #4206 · dotnet/machinelearning · GitHub
Question: Roadmap for JupyterNotebook + ML.NET · Issue #4208 · dotnet/machinelearning · GitHub
こんな感じでJupyter Notebookで使えそうな雰囲気が見えています。 実際
try/HousingML.ipynb at master · dotnet/try · GitHub
このようなサンプルも公開されています。