(interrupted by signal 11: SIGSEGV
准备做的是数据不平衡的问题,使用的是pytorch 交叉熵函数,weight参数一维tensor。
未注意到test的交叉熵损失函数不需要.cuda()形式,所以之跑出一个train就报错了
改为: weight_three = torch.FloatTensor([0.362, 4.752, 41.809])
criterion = torch.nn.CrossEntropyLoss(weight=weight_three.cuda())
criterion1 = torch.nn.CrossEntropyLoss()
测试集不需要类别不平衡惩罚啊
train_data.data_idx = get_train_idx(class1_train, class2_train, class3_train)
trainLoader = DataLoader(train_data, batch_size=args.batch_size, shuffle=True, num_workers=8)
train_loss, train_f1 = train(net, trainLoader, criterion, optimizer, epoch, args)
test_loss, test_f1, f1_0, f1_1, f1_2 = test(net, criterion1, testLoader, args, result)