例如:
我有一个输入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)
Run Code Online (Sandbox Code Playgroud)
但是上面的代码肯定不起作用,因为 False 设置为 0 会改变 avg。如果使用 np.nan ,它总是会得到 nan 。我想知道在做reduce操作时是否有一个表示缺席的值。
我怎样才能做到这一点?
python artificial-intelligence conv-neural-network tensorflow