みずりゅの自由帳

主に参加したイベントやソフトウェア技術/開発について記録しています

技術書典11で「Elixirへのいざない Let's try Nx」を頒布しました

技術書典11の新刊として、「Elixirへのいざない Let's try Nx」という技術同人誌を頒布しました。

techbookfest.org

内容としては、Elixir製のテンソル計算用ライブラリNxを取り扱ったものとなっています。


概要

Elixirへのいざない Let's try Nx」(以下、「本書」)は、テンソルtensor:≒「多次元配列」)を取り扱うライブラリ「Nx」について記述してある書籍です。

表紙は、前回の「育児休業のススメ」に続き、自分で作りました。
いつも表紙作成を頼んでいる方がプライベートで忙しそうだったこと、もともとは無料本で行くつもりだったことが関係しています。


章立ては、3章+付録の構成になっています。
具体的な章構成は以下です。

  • 第1章:Nx ってなんだろう
  • 第2章:はじめての Nx
  • 第3章:Nx の関数を紹介
  • 付録A:Elixirのインストール

細かい目次情報はこちら。

詳細

第1章:Nx ってなんだろう

章タイトルの通り、Nxについて簡単に説明しています。
ただ、どちらかというとヌンバットの方がインパクトが強くなってしまいました。

なお、本章は以前書いたブログの内容をベースに記述しています。

mzryuka.hatenablog.jp

第2章:はじめての Nx

ライブラリの指定や関数の説明よりも前に、まずは実際に触って動かして体験しましょう、という内容の章です。

Elixir 1.12の機能でもある「Mix.install/2」を利用して、Nxでソフトマックス関数を実施しています。

なお、本章も以前Qiitaへ投稿した内容をベースに記述しています。

qiita.com

第3章:Nx の関数を紹介

Nxの利用方法、およびNxで提供されている関数の説明をしています。

Nxの関数の説明については、まだNxのHexDocsがネット上にはないため、ソースコードに書かれてるHexDocs用のコメントから拾いました。

github.com

残念ながら、関数の量が当初考えていたよりも多かったので、一部の関数に絞って説明しています。

また、HexDocsに書かれている内容をそのままではなく、自分で動作確認をして「この例ならわかりやすいかも」といった使い方の例を記載しています。

付録A:Elixirのインストール

付録として、Elixirのインストール方法を記載しています。種類は、Dockerとasdfを利用した場合です。
Nxは2021年7月時点では、Erlang24のインストールが必要になっています。
そのため、お手軽なDockerを先に紹介することにしました。

補足事項:

BOOTHで公開(お試し版も用意):

BOOTHでも公開しました。

mzryuka.booth.pm


また、「お試し版」も用意しました。
1章と2章が全部、3章は冒頭が読めます。

mzryuka.booth.pm

GitHub上でもパブリックに公開中

もともと無料本で出すつもりだったので、リポジトリはパブリックにしていました。
今回はお値段つけて出していますが、無料本にするつもりだった名残りでリポジトリはパブリックのままにしておきます。
Re:VIEWで書いていますので、テキストベースでなら無料で読むこともできます。また、Re:VIEWの環境が揃えば製本することもできます。

github.com

なんで頒布したの?

主に以下の2点です。

  • ベータ版ではあるけれど、Nxというライブラリが面白そうなので、知ってもらいたい。(知っている人を増やしたい)
  • 自分自身がNxを学ぶ(触る)機会を作るため。

前者は、どこかの誰か一人にでも刺さればいいなという想いを込めて。

まとめ:

前回の技術書典10の時でもそうだったのですが、新刊の頒布が技術書典11初日に間に合いませんでした。
どうも、一定の期間に実施するとなると、開始日になくてもいいかな、、、という考えが出てしまいがちですね。
結果、4日ほど遅れて頒布を開始しました。

また、今回は関数の説明までで終わってしまいましたが、できれば応用編としてNxを使った機械学習を実施した内容を本にしたな、とか考えています。...無謀かもしれませんが。
ただ、そういったきっかけがないと、仕事や育児に追われて自己学習をしなくなりそう、という想いが頭をよぎってしまいます。

何より、Nxはまだベータ版です。
正式版になったら、改訂しようかな、とかも考えていたります。