擅长:python、mysql、java
<p>实际上tf.段平均值可用于平均嵌入,下面是一个示例</p>
<pre><code>%matplotlib inline
from __future__ import print_function
import collections
import math
import numpy as np
import os
import random
import tensorflow as tf
import zipfile
from matplotlib import pylab
from six.moves import range
from six.moves.urllib.request import urlretrieve
tf.enable_eager_execution()
train_dataset = [3, 7, 5 ,12 ,19 ,6, 10, 8]
embeddings = tf.get_variable( 'generator',
initializer=tf.random_uniform([20, 6], -1.0, 1.0))
embed = tf.nn.embedding_lookup(embeddings, train_dataset)
print(embed)
segments= np.arange(2).repeat(4)
print(segments)
averaged_embeds = tf.segment_mean( embed, segments, name=None)
print(averaged_embeds)
#Use this to confirm that the embeddings were averaged correctly
print( np.mean([ -0.78844213 , -0.2852435 , 0.58107734, 0.12990952 ]))
</code></pre>
<p>不幸的是,如果嵌入张量有两个以上的维,我还没有找到一个平均值的方法。我尝试过使用<code>segments</code>具有多个维度,但似乎不起作用。到目前为止,我在<code>tf.segment_mean</code>操作前后重塑<code>embed</code>和{<cd1>}张量。在</p>