class AjFullconn_Class(ModelObj):  # 全连接调整对象
    def __init__(self, ObjID,ObjType,ObjLable,ParaString,ObjX,ObjY):
        super().__init__(ObjID,ObjType,ObjLable,ParaString,ObjX,ObjY)
        self.AjFullconnProc = self.ajfullconn_proc  # 基本操作函数
        self.SetAjFCPara = self.setajfc_para  # 参数设置函数
    def ajfullconn_proc(self, AjFCPara):
        # 根据激活函数的参数选择相应的函数和导数
        # 计算权重矩阵和偏置向量的梯度，使用链式法则
        gradient_weights = np.outer(AjFCPara['loss'],
                                    AjFCPara['learning_rate'])
        # 更新权重矩阵和偏置向量
        weight_matrix = AjFCPara['weights'] - gradient_weights
        bias_vector = AjFCPara['bias'] - AjFCPara[
                            'learning_rate'] * AjFCPara['bias']
        # 返回更新后的权重矩阵和偏置向量
        return weight_matrix, bias_vector

    def setajfc_para(self, loss, FullConnPara):
        weights = FullConnPara["weights"]
        bias = FullConnPara["bias"]
        loss = np.array([loss])
        AjFCPara = {
            'weights': weights,  # 全连接权重
            'bias': bias,  # 全连接偏置
            'learning_rate': 0.01,  # 学习率
            'loss': loss  # 误差值
        }
        return AjFCPara
if __name__ == '__main__':
    AjFullconn = AjFullconn_Class("AjFullconn1", 9,
                                  "全连接调整1", [], 510, 120)
    ···
    AjFCPara = AjFullconn.SetAjFCPara(loss, FullConnPara)
    weight, bias = AjFullconn.AjFullconnProc(AjFCPara)
    FullConnPara['weights'] = weight
    FullConnPara['bias'] = bias