Keras层

时间:2018-04-11 01:36:50

标签: python tensorflow keras logistic-regression

以下是逻辑回归代码,我用它来建立剂量值(形状672,1)与疾病结果(形状672,1;二元结果0,1)之间的关联,使用Keras。我的目标是计算优势比,我认为这是exp(权重),并将其与我使用Fisher测试计算的优势比进行比较。

from keras.models import Sequential 
from keras.layers import Dense, Activation 
from keras import layers

class logit:
def lg_keras(self,input_dim,output_dim,ep,X,y):
    model = Sequential() 
    model.add(Dense(output_dim, input_dim=input_dim, activation='sigmoid')) 
    model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) 
    model.fit(X, y, nb_epoch=ep, verbose=0) 
    print("Done")
    return model

我的问题是当我从Keras模型中提取权重时。我希望只为一个输出节点获得一个权重,但我收到了两个。下面是代码和输出。

model = lgd.lg_keras(X.shape[1], y.shape[1],20,X,y)
for layer in model.layers:
    weights = layer.get_weights() # list of numpy arrays
print(weights)

[array([[ - 0.00019858]],dtype = float32),array([ - 0.06999612],dtype = float32)]

这两个重量值的含义是什么?

1 个答案:

答案 0 :(得分:1)

我想我找到了自己问题的答案。第一个数字/数组用于权重项,第二个数组用于偏差项。因为如果我在我的要素表中添加两列,那么我在权重数组中得到两个值,在偏置数组中有一个值,这是有道理的。