我在页面https://www.tensorflow.org/tutorials/eager/custom_training上遇到以下句子:
对于表示嵌入的变量,TensorFlow默认会进行稀疏更新,这样可以提高计算效率和内存效率。
并完全不明白。请给我解释一下!
嵌入是从离散域到实数向量的映射。
只是想象有一个形状为tf.Variable
的[key, value]
,其中key
是离散域的维度(例如单词列表),value
是表示key
的向量的维度(通常这个向量是键的潜在表示)。
Tensorflow表示使用变量的嵌入映射,它允许访问key
元素以使用value
获得相应的tf.nn.embedding_lookup
。
因此,tensorflow只能访问该变量的key
元素(稀疏访问),而不是处理完全嵌入(这是一个巨大的变量),而是更有效。