我尝试使用从nolearn包导入的DBN函数,下面是我的代码:
from nolearn.dbn import DBN
import numpy as np
from sklearn import cross_validation
fileName = 'data.csv'
fileName_1 = 'label.csv'
data = np.genfromtxt(fileName, dtype=float, delimiter = ',')
label = np.genfromtxt(fileName_1, dtype=int, delimiter = ',')
clf = DBN(
[data, 300, 10],
learn_rates=0.3,
learn_rate_decays=0.9,
epochs=10,
verbose=1,
)
clf.fit(data,label)
score = cross_validation.cross_val_score(clf, data, label,scoring='f1', cv=10)
print score
由于我的数据具有形状(1231,229)和带有形状(1231,13)的标签,标签集看起来像([0 0 1 0 1 0 1 0 0 0 1 1 0]…,[…]),当我运行代码时,我收到以下错误消息:bad input shape(1231,13)。我不知道这里可能会发生两个问题:
Fit调用BuildDBN,可以在这里找到here一件重要的事情是dbn已经被弃用,您只能找到它old_commits。无论如何,如果您正在寻找额外的信息,那么根据我在您的代码片段中看到的,检查这两个参数可能是很好的,即}的第一个参数应该是
DBN
即{[data.shape[1], 300, 10]
,这是基于文档和源代码的。希望这有帮助。在正如Francisco Vargas提到的,
nolearn.dbn
是不推荐使用的,您应该使用nolearn.lasagne
(如果可以的话)。在如果您想在千层面中进行多标签分类,那么您应该将
regression
参数设置为True
,定义验证分数和自定义损失。在下面是一个例子:
相关问题 更多 >
编程相关推荐