2️⃣
TensorFlow Recommendersは現状Keras 2を使うのが良さそう
TensorFlow Recommenders(TFRS)はKerasベースのレコメンドシステムモデルを構築するためのライブラリです。
以下は執筆時点(2024年8月5日)の情報になります。
背景
- Google ColaboratoryでTFRSのチュートリアルを試そうとしたところ、Keras 2に依存する一部のコードが実行できませんでした。
- TensorFlow(TF)がKeras 3を利用している場合、Keras 2に依存する
FactorizedTopK
関数が使えませんでした。ちなみに、今年の3月頃にリリースされたTF v2.16からデフォルトでKeras 3を使用します。
解決策
Colaboratoryの場合
TFRSのインストール前に以下のセルを追加して、実行しておきます。
ちなみに、これはKeras 2を使うための環境設定を行っています。
import os
os.environ["TF_USE_LEGACY_KERAS"] = "1"
その後はチュートリアル通りにTFRSをインストールすればOKです。
!pip install -q tensorflow-recommenders
!pip install -q --upgrade tensorflow-datasets
TF v2.16以降かつKeras 2がインストールされていない環境の場合
まずはKeras 2をインストールします。
pip install tf-keras~=2.x
xの部分はTFのバージョンと合わせてください(TF v2.16.1ならxは16になります)。
続いて、.bashrcなどに以下の環境変数を追記します。
TF_USE_LEGACY_KERAS=1
上記の設定方法では、TFRS以外でもKeras 2が使われることに注意してください。
原因
TF v2.16以降からはデフォルトでKeras 3が使われるようになりました(Colaboratoryは執筆時点でTF v2.17.0がインストールされています)。
Keras 3で色々と仕様が変更されましが、TFRSは現状Keras 2にしか対応していないようです(Issueには記事に関連する報告がいくつかされていましたが、まだMergeはされていませんでした)。
まとめ
TF v2.16以降でTFRSを使う場合はKeras 2としておくのが良さそうです。
参考
Getting started with Keras
Release TensorFlow 2.16.1 · tensorflow/tensorflow · GitHub
tfrs.metrics.FactorizedTopK · Issue #712 · tensorflow/recommenders
Discussion