python中sample函数用法_在Pytorch中使用样本权重(sample_weight)的正确方法

  • Post author:
  • Post category:python


step:

1.将标签转换为one-hot形式。

2.将每一个one-hot标签中的1改为预设样本权重的值

即可在Pytorch中使用样本权重。

eg:

对于单个样本:loss = – Q * log(P),如下:

P = [0.1,0.2,0.4,0.3]

Q = [0,0,1,0]

loss = -Q * np.log(P)

增加样本权重则为loss = – Q * log(P) *sample_weight

P = [0.1,0.2,0.4,0.3]

Q = [0,0,sample_weight,0]

loss_samle_weight = -Q * np.log(P)

在pytorch中示例程序

train_data = np.load(open(‘train_data.npy’,’rb’))

train_labels = []

for i in range(8):

train_labels += [i] *100

train_labels = np.array(train_labels)

train_labels = to_categorical(train_labels).astype(“float32”)

sample_1 = [random.random() for i in range(len(train_data))]

for i in range(len(train_data)):

floor = i / 100

train_labels[i