项目实训 --主观题阅卷评分网站(六)

项目进度:

完成了考生答案的得分类别预测,目前在少量标记样本的条件下获得了70%左右的正确率。

完成过程:

建立了两层MLP网络,针对题目建立了得分类别的one—hot矩阵,鉴于本题有两个知识点,建立三维矩阵分别对应0分,1.5分和3分,并开始训练。
网络架构:

class TwoLayerNet:
    def __init__(self, input_size, hidden_size, output_size, file_name):
        I, H, O = input_size, hidden_size, output_size

        # if file_name is None:
        #     file_name = self.__class__.__name__ + '.pkl'

        # if '/' in file_name:
        #     file_name = file_name.replace('/', os.sep)

        if not os.path.exists(file_name):
            print("path one!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
            # raise IOError('No file: ' + file_name)
            W1 = 0.01 * np.random.randn(I, H)
            b1 = np.zeros(H)
            W2 = 0.01 * np.random.randn(H, O)
            b2 = np.zeros(O)

            # 生成层
            self.layers = [
                Affine(W1, b1),
                # Sigmoid(),
                Affine(W2, b2)
            ]
            self.loss_layer = SoftmaxWithLoss()

            # 将所有的权重和偏置整理到列表中
            self.params, self.grads = [], []
            for layer in self.layers:
                self.params += layer.params
                self.grads += layer.grads

模型的保存:

BaseModel.save_params(model,'two_layer_net2.pkl')

模型的调用:

    with open(file_name, 'rb') as f:
                params = pickle.load(f)
                self.params = params

            params = [p.astype('f') for p in params]

预测结果及准确率:
l
loss稳定在0.7-0.8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值