我正在使用 tensorflow==2.9.1 我正在嘗試使用tf.keras.Model?用部分數字和部分分類資料建立模型。
這是我想做的一個簡短示例:
import tensorflow==2.9.1
input_layer = tf.keras.layers.InputLayer(input_shape=(1,), dtype=tf.string)
string_lookup_layer = tf.keras.layers.StringLookup(vocabulary=["a", "b"], output_mode="one_hot")(input_layer)
這會引發以下回溯。可悲的是,如果我只是使用StringLookup它請求一個 InputLayer。
ValueError Traceback (most recent call last)
Cell In [60], line 2
1 input_layer = tf.keras.layers.InputLayer(input_shape=(1,), dtype=tf.string)
----> 2 string_lookup_layer = tf.keras.layers.StringLookup(vocabulary=["a", "b"], output_mode="one_hot")(input_layer)
File ~\AppData\Local\pypoetry\Cache\virtualenvs\dqex-training-server-il8_fjrD-py3.10\lib\site-packages\keras\utils\traceback_utils.py:67, in filter_traceback.<locals>.error_handler(*args, **kwargs)
65 except Exception as e: # pylint: disable=broad-except
66 filtered_tb = _process_traceback_frames(e.__traceback__)
---> 67 raise e.with_traceback(filtered_tb) from None
68 finally:
69 del filtered_tb
File ~\AppData\Local\pypoetry\Cache\virtualenvs\dqex-training-server-il8_fjrD-py3.10\lib\site-packages\tensorflow\python\framework\constant_op.py:102, in convert_to_eager_tensor(value, ctx, dtype)
100 dtype = dtypes.as_dtype(dtype).as_datatype_enum
101 ctx.ensure_initialized()
--> 102 return ops.EagerTensor(value, ctx.device_name, dtype)
ValueError: Exception encountered when calling layer "string_lookup_25" (type StringLookup).
Attempt to convert a value (<keras.engine.input_layer.InputLayer object at 0x000001F46A29FFD0>) with an unsupported type (<class 'keras.engine.input_layer.InputLayer'>) to a Tensor.
我想,我錯過了一些東西。我該如何進行這項作業?
uj5u.com熱心網友回復:
使用tf.keras.layers.Input代替tf.keras.layers.InputLayer并首先初始化您的StringLookup圖層:
import tensorflow as tf
inputs = tf.keras.layers.Input(shape=(1,), dtype=tf.string)
string_lookup_layer = tf.keras.layers.StringLookup(vocabulary=["a", "b"], output_mode="one_hot")
outputs = string_lookup_layer(inputs)
model = tf.keras.Model(inputs, outputs)
model(tf.constant(["a"]))
<tf.Tensor: shape=(1, 3), dtype=float32, numpy=array([[0., 1., 0.]], dtype=float32)>
請注意,由于預定義的詞匯表和oov_token='[UNK]'.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/526540.html
上一篇:從向量R中提取帶小數的數字
下一篇:使用Python處理文本檔案
