Parameters Scikit学习模型中参数数量的计数方法

Parameters Scikit学习模型中参数数量的计数方法,parameters,scikit-learn,count,neural-network,Parameters,Scikit Learn,Count,Neural Network,据我所知,在Scikit学习模型中没有返回参数总数(权重)的通用属性或方法 我提出了这个解决方案,但不确定它是否在所有情况下都有效 def n_params(model): """Return total number of parameters in a Scikit-Learn model. This works for the following model types: - sklearn.neural_network.MLPClassifier

据我所知,在Scikit学习模型中没有返回参数总数(权重)的通用属性或方法

我提出了这个解决方案,但不确定它是否在所有情况下都有效

def n_params(model):
    """Return total number of parameters in a 
    Scikit-Learn model.

    This works for the following model types:
     - sklearn.neural_network.MLPClassifier
     - sklearn.neural_network.MLPRegressor
     - sklearn.linear_model.LinearRegression
     - and maybe some others
    """
    return (sum([a.size for a in model.coefs_]) +  
            sum([a.size for a in model.intercepts_]))
我是否遗漏了更明显/更可靠的内容

当然,一个问题是这个估计是否应该包括“超参数”,但假设我只对权重感兴趣

对于信息,
model.get_params()
返回如下内容:

{'activation': 'relu',
 'alpha': 0.0001,
 'batch_size': 'auto',
 'beta_1': 0.9,
 'beta_2': 0.999,
 'early_stopping': False,
 'epsilon': 1e-08,
 'hidden_layer_sizes': (100,),
 'learning_rate': 'constant',
 'learning_rate_init': 0.001,
 'max_iter': 200,
 'momentum': 0.9,
 'n_iter_no_change': 10,
 'nesterovs_momentum': True,
 'power_t': 0.5,
 'random_state': None,
 'shuffle': True,
 'solver': 'adam',
 'tol': 0.0001,
 'validation_fraction': 0.1,
 'verbose': False,
 'warm_start': False}