Skip to content

Commit 572372a

Browse files
authored
Regenerate KerasRS examples to apply changes. (#2095)
- Apply changes to examples. - Apply fix to progress bars. - Also fix some preprocessing issue with `deep_recommender` example. The `scann` and `data_parallel_retrieval` examples will be done separately.
1 parent 66265a7 commit 572372a

18 files changed

+616
-12067
lines changed

examples/keras_rs/deep_recommender.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -429,9 +429,7 @@ def preprocess_rating(x):
429429
"raw_user_age": features["raw_user_age"],
430430
"user_gender": features["user_gender"],
431431
"user_occupation_label": features["user_occupation_label"],
432-
"user_gender_X_raw_user_age": tf.squeeze(
433-
features["user_gender_X_raw_user_age"], axis=-1
434-
),
432+
"user_gender_X_raw_user_age": features["user_gender_X_raw_user_age"],
435433
# Movie inputs are movie ID, vectorized title and genres
436434
"movie_id": int(x["movie_id"]),
437435
"movie_title_vector": features["movie_title"],
1.88 KB
Loading
223 Bytes
Loading
5.2 KB
Loading
6.19 KB
Loading

examples/keras_rs/ipynb/dcn.ipynb

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,7 @@
155155
" \"num_epochs\": 10,\n",
156156
" \"batch_size\": 1024,\n",
157157
"}\n",
158-
"\n",
159-
"LOOKUP_LAYERS = {\n",
160-
" \"int\": keras.layers.IntegerLookup,\n",
161-
" \"str\": keras.layers.StringLookup,\n",
162-
"}"
158+
""
163159
]
164160
},
165161
{
@@ -234,9 +230,7 @@
234230
" if num_trials == 1:\n",
235231
" print(f\"{model_name}: RMSE = {avg_rmse}; #params = {num_params}\")\n",
236232
" else:\n",
237-
" print(\n",
238-
" f\"{model_name}: RMSE = {avg_rmse} \u00b1 {std_rmse}; \" \"#params = {num_params}\"\n",
239-
" )\n",
233+
" print(f\"{model_name}: RMSE = {avg_rmse} \u00b1 {std_rmse}; #params = {num_params}\")\n",
240234
""
241235
]
242236
},
@@ -351,6 +345,7 @@
351345
" keras.layers.Dense(512, activation=\"relu\"),\n",
352346
" keras.layers.Dense(256, activation=\"relu\"),\n",
353347
" keras.layers.Dense(128, activation=\"relu\"),\n",
348+
" keras.layers.Dense(1),\n",
354349
" ]\n",
355350
")"
356351
]

examples/keras_rs/ipynb/deep_recommender.ipynb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -734,9 +734,7 @@
734734
" \"raw_user_age\": features[\"raw_user_age\"],\n",
735735
" \"user_gender\": features[\"user_gender\"],\n",
736736
" \"user_occupation_label\": features[\"user_occupation_label\"],\n",
737-
" \"user_gender_X_raw_user_age\": tf.squeeze(\n",
738-
" features[\"user_gender_X_raw_user_age\"], axis=-1\n",
739-
" ),\n",
737+
" \"user_gender_X_raw_user_age\": features[\"user_gender_X_raw_user_age\"],\n",
740738
" # Movie inputs are movie ID, vectorized title and genres\n",
741739
" \"movie_id\": int(x[\"movie_id\"]),\n",
742740
" \"movie_title_vector\": features[\"movie_title\"],\n",
@@ -1029,7 +1027,7 @@
10291027
" self.update_candidates() # Provide an initial set of candidates\n",
10301028
" self.loss_fn = keras.losses.MeanSquaredError()\n",
10311029
" self.top_k_metric = keras.metrics.SparseTopKCategoricalAccuracy(\n",
1032-
" k=100, from_sorted_ids=True\n",
1030+
" k=retrieval_k, from_sorted_ids=True\n",
10331031
" )\n",
10341032
"\n",
10351033
" def update_candidates(self):\n",

examples/keras_rs/ipynb/listwise_ranking.ipynb

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -258,16 +258,19 @@
258258
" }\n",
259259
" labels = []\n",
260260
" for user_id, user_list in sequences.items():\n",
261-
" sampled_list = sample_sublist_from_list(\n",
262-
" user_list,\n",
263-
" num_examples_per_list,\n",
264-
" )\n",
265-
"\n",
266-
" inputs[\"user_id\"].append(user_id)\n",
267-
" inputs[\"movie_id\"].append(\n",
268-
" tf.convert_to_tensor([f[\"movie_id\"] for f in sampled_list])\n",
269-
" )\n",
270-
" labels.append(tf.convert_to_tensor([f[\"user_rating\"] for f in sampled_list]))\n",
261+
" for _ in range(num_list_per_user):\n",
262+
" sampled_list = sample_sublist_from_list(\n",
263+
" user_list,\n",
264+
" num_examples_per_list,\n",
265+
" )\n",
266+
"\n",
267+
" inputs[\"user_id\"].append(user_id)\n",
268+
" inputs[\"movie_id\"].append(\n",
269+
" tf.convert_to_tensor([f[\"movie_id\"] for f in sampled_list])\n",
270+
" )\n",
271+
" labels.append(\n",
272+
" tf.convert_to_tensor([f[\"user_rating\"] for f in sampled_list])\n",
273+
" )\n",
271274
"\n",
272275
" return (\n",
273276
" {\"user_id\": inputs[\"user_id\"], \"movie_id\": inputs[\"movie_id\"]},\n",

examples/keras_rs/ipynb/multi_task.ipynb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@
233233
" )\n",
234234
"\n",
235235
" # Rating model.\n",
236-
" self.rating_model = tf.keras.Sequential(\n",
236+
" self.rating_model = keras.Sequential(\n",
237237
" [\n",
238238
" keras.layers.Dense(layer_size, activation=\"relu\")\n",
239239
" for layer_size in layer_sizes\n",
@@ -252,7 +252,7 @@
252252
"\n",
253253
" # Top-k accuracy for retrieval\n",
254254
" self.top_k_metric = keras.metrics.SparseTopKCategoricalAccuracy(\n",
255-
" k=100, from_sorted_ids=True\n",
255+
" k=10, from_sorted_ids=True\n",
256256
" )\n",
257257
" # RMSE for ranking\n",
258258
" self.rmse_metric = keras.metrics.RootMeanSquaredError()\n",
@@ -410,7 +410,7 @@
410410
" ranking_loss_wt=1.0,\n",
411411
" retrieval_loss_wt=0.0,\n",
412412
")\n",
413-
"model.compile(optimizer=tf.keras.optimizers.Adagrad(0.1))\n",
413+
"model.compile(optimizer=keras.optimizers.Adagrad(0.1))\n",
414414
"model.fit(train_ratings, epochs=5)\n",
415415
"\n",
416416
"model.evaluate(test_ratings)\n",
@@ -422,7 +422,7 @@
422422
" ranking_loss_wt=0.0,\n",
423423
" retrieval_loss_wt=1.0,\n",
424424
")\n",
425-
"model.compile(optimizer=tf.keras.optimizers.Adagrad(0.1))\n",
425+
"model.compile(optimizer=keras.optimizers.Adagrad(0.1))\n",
426426
"model.fit(train_ratings, epochs=5)\n",
427427
"\n",
428428
"model.evaluate(test_ratings)\n",
@@ -434,7 +434,7 @@
434434
" ranking_loss_wt=1.0,\n",
435435
" retrieval_loss_wt=1.0,\n",
436436
")\n",
437-
"model.compile(optimizer=tf.keras.optimizers.Adagrad(0.1))\n",
437+
"model.compile(optimizer=keras.optimizers.Adagrad(0.1))\n",
438438
"model.fit(train_ratings, epochs=5)\n",
439439
"\n",
440440
"model.evaluate(test_ratings)"

examples/keras_rs/ipynb/sequential_retrieval.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
"TEST_BATCH_SIZE = 2048\n",
9797
"EMBEDDING_DIM = 32\n",
9898
"NUM_EPOCHS = 5\n",
99-
"LEARNING_RATE = 0.05"
99+
"LEARNING_RATE = 0.005"
100100
]
101101
},
102102
{
@@ -516,7 +516,7 @@
516516
"outputs": [],
517517
"source": [
518518
"model = SequentialRetrievalModel(\n",
519-
" movies_count=movies_count + 1, embedding_dimension=EMBEDDING_DIM\n",
519+
" movies_count=movies_count, embedding_dimension=EMBEDDING_DIM\n",
520520
")\n",
521521
"\n",
522522
"# Compile.\n",

0 commit comments

Comments
 (0)