Tensorflow解説、tf-nightlyって何だ?
単語埋め込み (Word embeddings)
https://www.tensorflow.org/tutorials/text/word_embeddings?hl=ja
上記のようなTensorFlowのチュートリアルを読んでいると
!pip install -q tf-nightly
import tensorflow as tf
こういう感じのコードが出てきます。
tf-nightlyって何だ?
tf-nightlyをインストールしているくせに、
import tf-nightly
みたいなコードは出てきません。
使わないならなんでpip install でtf-nightlyをインストールするんだ?
tf-nightlyに関する説明は、チュートリアルには出てきません。
インストール
https://www.tensorflow.org/probability/install?hl=ja
上記のページには
毎晩のビルド
tfp-nightly tf-nightlyとtf-nightly-gpuいずれかに依存する、pipパッケージtfp-nightly下にTensorFlow Probabilityのナイトリービルドもあります。ナイトリービルドには新しい機能が含まれていますが、バージョン付きのリリースよりも安定性が低い場合があります。
という説明があります。
import tensorflow as tf
上記のコードでtensorflowをインストールすると、2020年8月現在でtensorflow2.3.0がインポートされます。
これは数か月に1回位のペースでビルドされてバージョンが新しくなります。
tf-nightlyは毎晩(nightly)ビルドされる超最新バージョンみたいな意味のようです。
「2.3.0よりも新しいバージョン。最新機能が使えるけど実験段階だからバグもあるよ」
ってことですね。
!pip install -q tf-nightly
import tensorflow as tf
上記のようにtf-nightlyをインストールして、
import tensorflowをすれば、勝手にnightlyバージョンのTensorFlowがインポートされています。
tf-nightlyを使っちゃうと、いまはtf-nightlyで実験的に採用されている機能が、いつの間にか消えてなくなっていたみたいなことになる可能性も。
コードが気づいたら動かなくなってるみたいなことになるので、特別な理由がなければ
!pip install -q tf-nightly
は使わない方がいいでしょう。
メジャーバージョンで書いたコードなら
「このコードはTensorFlow2.3なら動く」
というのが明確になります。
最新版がTensorFlow3.0とかになった場合も、意図的にTensorFlow2.3を導入して古いコードを動かすみたいなことができます。
!pip install -q tf-nightly
を使っちゃうと、いざコードがバージョン違いで動かなくなったときに、あの当時の「tf-nightly」と同じ環境を再現したいと思っても、たぶん難しいです。