Я работаю над этим ноутбуком colab:
https://colab.research.google.com/github/tensorflow/hub/blob/master/examples/colab/tf2_text_classification.ipynb
Я бы хотел заменить поворотные вложения gnews на вложения ELMo.
Итак, замените
model = "https://tfhub.dev/google/tf2-preview/gnews-swivel-20dim/1"
с:
model = "https://tfhub.dev/google/elmo/2"
Здесь есть множество вещей, которые меняются, например, необходимость
tf.compat.v1.disable_eager_execution()
Но я не понимаю форму графика, который мне нужен, чтобы успешно выполнить эту замену. В частности, я вижу.
#model = "https://tfhub.dev/google/tf2-preview/gnews-swivel-20dim/1"
model = "https://tfhub.dev/google/elmo/2"
elmo = hub.Module(model, trainable=True, name="{}_module".format("mymod"))
hub_layer = hub.KerasLayer(elmo,
# output_shape=[3,20],
# input_shape=(1,),
dtype=tf.string,
trainable=True)
hub_layer(train_examples[:3])
Производит
<tf.Tensor 'keras_layer_14/mymod_module_14_apply_default/truediv:0' shape=(3, 1024) dtype=float32>
Это кажется нормальным. Но:
model = tf.keras.Sequential()
model.add(hub_layer)
model.add(tf.keras.layers.Dense(16, activation='relu'))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))
# First, I have to build, because I no longer have eager executon.
model.build(input_shape=(None,1024))
model.summary()
Тогда это дает:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-54-8786753617e4> in <module>()
4 model.add(tf.keras.layers.Dense(1, activation='sigmoid'))
5
----> 6 model.build(input_shape=(None,1024))
7
8 model.summary()
18 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/ops.py in internal_convert_to_tensor_or_indexed_slices(value, dtype, name, as_ref)
1381 raise ValueError(
1382 "Tensor conversion requested dtype %s for Tensor with dtype %s: %r" %
-> 1383 (dtypes.as_dtype(dtype).name, value.dtype.name, str(value)))
1384 return value
1385 else:
ValueError: Tensor conversion requested dtype string for Tensor with dtype float32: 'Tensor("Placeholder_12:0", shape=(None, 1024), dtype=float32)'
Что еще изменилось в измерениях графика и как мне это исправить?