nolearn auto添加隐藏图层

时间:2016-02-22 22:24:13

标签: python machine-learning scikit-learn neural-network nolearn

尝试在神经网络中添加更多隐藏图层,以便使用相同的学习率和动量等比较不同图层的精度得分。

所以我有以下内容:

from nolearn.dbn import DBN 
from sklearn.cross_validation import train_test_split

from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
from sklearn.metrics import accuracy_score

numFeat = 50 * 64 
labs = ["BC", "FL", "PRO1", "PRO2", "RP", "SD"]  # Defect types

hiddenAr = [numFeat, 6] # initial params for dbn
pos = len(hiddenAr) - 1

with open("all_defects.csv") as f:
reader = csv.reader(f)
for row in reader:
    input = [int(x) for x in row[:numFeat]]  
    labels += [labs.index(row[-1])]  # categorical labels in numerical form
    data += [input]

X_train, X_test, y_train, y_test = train_test_split(
data, labels, test_size=0.25) 

for i in range (0, layer):
    hiddenAr.insert(pos, 300) # Add hidden layer

    dbn = DBN(
    hiddenAr,
    # Learning rate of algorithm
    learn_rates = 0.03,
    # Decay of learn rate
    learn_rate_decays=1,
    # Iterations of training data (epochs)
    epochs=10,
    # Verbosity level
    verbose=1,
    momentum= 0.03,
    use_re_lu=True
    ) 

我在那里做的,每次只是将另外300个节点添加到另一个隐藏层。但是,当我出于某种原因添加图层时,它会出现一些npmat.py错误。

这有明显的原因吗?我真的想自动添加它自己添加隐藏层,这样我就可以生成图形和csv文件以便于评估。

错误发生在隐藏数组添加了第二层之后,即当i = 1时,然后为之后添加的每一层添加:

npmat.py:433:RuntimeWarning:inv 添加中遇到的alid值   target.numpy_array [:] = vec.numpy_array + self.numpy_array

RuntimeWarning:inv 在较少的情况下遇到的alid值   target.numpy_array [:] = self.numpy_array< VAL

RuntimeWarning:inv 在更大的

中遇到的alid值

npmat.py:969:RuntimeWarning:inv 乘法中遇到的alid值

数据: https://drive.google.com/file/d/0B12vhoNivII6My1GQ3E3T3JxQm8/view?usp=sharing

0 个答案:

没有答案