Add workaround for StringLookup in Sequential model issue

main
Aurélien Geron 2022-02-21 16:43:52 +13:00
parent 446fbb81cb
commit b658ab40c0
1 changed files with 3 additions and 2 deletions

View File

@ -2654,7 +2654,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"**Warning**: there's currently a bug in TensorFlow 2.8.0 ([issue #54459](https://github.com/tensorflow/tensorflow/issues/54459)) which prevents using a `StringLookup` layer inside a model, so the next 4 cells will fail. If you run into this issue, you must either skip these cells, or downgrade to TensorFlow 2.7.1 (e.g., using `%pip install tensorflow~=2.7.1`) and run the notebook again. I'll update this notebook as soon as the bug is fixed, or when a better workaround exists." "**Warning**: there's a bug in Keras 2.8.0 ([issue #16101](https://github.com/keras-team/keras/issues/16101)) which prevents using a `StringLookup` layer as the first layer of a `Sequential` model. Luckily, there's a simple workaround: just add an `InputLayer` as the first layer."
] ]
}, },
{ {
@ -2682,11 +2682,12 @@
"str_lookup_layer = tf.keras.layers.StringLookup()\n", "str_lookup_layer = tf.keras.layers.StringLookup()\n",
"str_lookup_layer.adapt(ocean_prox)\n", "str_lookup_layer.adapt(ocean_prox)\n",
"lookup_and_embed = tf.keras.Sequential([\n", "lookup_and_embed = tf.keras.Sequential([\n",
" tf.keras.layers.InputLayer(input_shape=[], dtype=tf.string), # WORKAROUND\n",
" str_lookup_layer,\n", " str_lookup_layer,\n",
" tf.keras.layers.Embedding(input_dim=str_lookup_layer.vocabulary_size(),\n", " tf.keras.layers.Embedding(input_dim=str_lookup_layer.vocabulary_size(),\n",
" output_dim=2)\n", " output_dim=2)\n",
"])\n", "])\n",
"lookup_and_embed(np.array([[\"<1H OCEAN\"], [\"ISLAND\"], [\"<1H OCEAN\"]]))" "lookup_and_embed(np.array([\"<1H OCEAN\", \"ISLAND\", \"<1H OCEAN\"]))"
] ]
}, },
{ {