例如:
我有一个输入张量
还有一个掩码张量
还有一个标签张量
我想训练模型,但找不到一个好的方法来获得输出。
我尝试了
我考虑使用
但是上面的代码肯定不起作用,因为将 False 设置为 0 会改变平均值。如果使用 np.nan,则始终会得到 nan。 我想知道在执行 reduce 操作时是否存在表示缺失的值。
我该如何做到这一点?
我有一个输入张量
tensor(input)
,形状为(?,10)
,dtype=float32
,第一个维度表示batch_size
。还有一个掩码张量
tensor(mask)
,形状为(?,10)
。mask[sample_number]
像[True,True,False,...]
,表示掩码。还有一个标签张量
(avg_label)
,形状为(?,)
,表示每个样本掩码位置的正确平均值。我想训练模型,但找不到一个好的方法来获得输出。
tf.reduce_...
函数(例如tf.reduce_mean
)似乎不支持关于掩码的参数。我尝试了
tf.boolean_mask
,但它会将输出形状压缩成只有一个维度,抛弃了sample_number
维度,因此无法区分样本。我考虑使用
tf.where
,例如:masked=tf.where(mask,input,tf.zeros(tf.shape(input)))
avg_out=tf.reduce_mean(masked,axis=1)
loss=tf.pow(avg_out-avg_label,2)
但是上面的代码肯定不起作用,因为将 False 设置为 0 会改变平均值。如果使用 np.nan,则始终会得到 nan。 我想知道在执行 reduce 操作时是否存在表示缺失的值。
我该如何做到这一点?
mask=True
的值的平均值,是这样吗? - layog