给定标签的一系列张量的单热蒙版

问题描述

我想知道如何才能使用torch.scatter_()或任何其他内置的屏蔽功能来完成这一热屏蔽任务-

我有两个张量-

X = [batch,100],label = [batch],and num_classes = 10

因此每个标签在'X'的那100个张量中都有10个张量。 例如形状为[1x100]的X,

X = ([ 0.0468,-1.7434,-1.0217,-0.0724,-0.5169,-1.7318,-0.1207,-0.8377,-0.8055,0.7438,0.1139,1.2162,-1.7950,1.7416,-1.2031,-1.4833,-0.5454,0.2466,-1.2303,-0.4257,0.9873,-1.5905,-1.3950,0.4013,-1.0523,1.4450,0.6574,1.5239,-0.3503,-0.1114,1.8192,-1.7425,0.4678,0.4074,1.7606,-1.0502,0.0724,0.1721,0.1108,0.4453,0.2278,-1.5352,-0.1232,1.1052,0.2496,1.2898,-0.4167,-0.8211,0.2340,-0.3829,-0.1328,0.1033,2.8693,-0.8802,-0.0433,0.5335,0.0662,0.4250,0.2353,-0.1590,0.0865,0.6519,-0.2242,1.5300,1.7021,-0.9451,0.5845,-0.7309,0.7124,0.6544,-1.4426,-0.1859,-1.5313,-1.5391,-0.2138,-1.0203,0.6678,1.3445,-1.3453,0.5222,0.9510,0.0969,-0.5437,-0.2727,-0.6090,-2.9624,0.4578,0.5257,-0.2866,0.0818,-1.2454,1.6511,0.1634,1.3720,-0.4222,0.5347,0.3586,-0.3506,2.6866,0.5084])

label = [3]

我想对张量30-40进行“ 1”热屏蔽,并将所有张量作为“ 0”放置在张量“ X”上。

如此

label = 1->掩码(0到10)为“ 1”,其余部分为“ 0”

label = 2->掩码(10到20)为“ 1”,其余部分为“ 0” ……等等。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)