def predict(self):
        rights = []
        labels = []
        for inputs in self.test_action_data_set:
            data, label = inputs

            # data = data.unsqueeze(0)  # 扩展一个维度
            label = torch.LongTensor([int(label)])
            if torch.cuda.is_available():
                data = data.to(self.device)

            labels.append(label)
            output = self.model(data)

            right = self.rightness(output, label)
            rights.append(right)

        # 计算校验集的平均准确度
        right_ratio = 1.0 * np.sum([i[0] for i in rights]) / np.sum(
            [i[1] for i in rights])
        print("模式{}-{}-{},准确率:{:.3f},识别个数:{}".format(self.model_name,
                                                     self.axis,
                                                     self.batch_size,
                                                     right_ratio, len(labels)))
        AUtils.metrics(np.array(labels),
                       np.array([i[3] for i in rights]).flatten())
        AUtils.plot_confusion_matrix(
            np.array(labels),
            np.array([i[3] for i in rights]).flatten(),
            classes=['Action0', 'Action1', 'Action2', 'Action3', 'Action4'],
            savePath=
            f'src/rec_batch/plt_img/{self.model_name}_{self.axis}_{self.batch_size}_predict.png',
            title=f'{self.model_name}_{self.axis}_{self.batch_size}_predict')
示例#2
0
    def predict(self):
        rights = []
        labels = []
        for data, label in self.test_action_data_set:
            data = data.unsqueeze(0)  # 扩展一个维度
            label = torch.LongTensor([int(label)])
            if torch.cuda.is_available():
                data = data.cuda()

            labels.append(label)
            output = self.model(data)

            right = self.rightness(output, label)
            rights.append(right)

        # 计算校验集的平均准确度
        right_ratio = 1.0 * np.sum([i[0] for i in rights]) / np.sum(
            [i[1] for i in rights])
        print("模式{}-{},准确率:{:.3f},识别个数:{}".format(model_name, cls, right_ratio,
                                                  len(labels)))
        AUtils.metrics(np.array(labels),
                       np.array([i[3] for i in rights]).flatten())
        AUtils.plot_confusion_matrix(
            np.array(labels),
            np.array([i[3] for i in rights]).flatten(),
            classes=[0, 1, 2, 3, 4],
            savePath=
            f'src/test_plt_img/{self.model_name}_{self.cls}_predict.png',
            title=f'{self.model_name}_{self.cls}_predict')
示例#3
0
    def predict(self):
        train_data, test_data = self.data
        Xtest = test_data[:, :-1]
        ytest = test_data[:, -1]

        knn_model = joblib.load(fr'src/ml_cf_model/{self.model_name}_model-{self.axis}.pkl')
        y_predict = knn_model.predict(Xtest)

        AUtils.plot_confusion_matrix(ytest, y_predict, ['Action0', 'Action1', 'Action2', 'Action3', 'Action4'],
                                     fr'src/ml_cf_plt_img/{self.model_name}_predict-{self.axis}.jpg',
                                     title=fr'{self.model_name}-{self.axis} Confusion matrix')
        AUtils.metrics(ytest, y_predict)
        return ytest, y_predict