最近两天我真的很努力寻找问题所在。我是机器学习的新手,并且正在尝试使用keras构建一个使用sparse_c._c的非常简单的神经网络。因为一个热编码矩阵将是巨大的,实际上我的标签达到了非常随机的值,最高可达1000;但我得到一个错误,说sparse_c._c。不接受超出[0,1)范围的值,这很奇怪,因为我从文档和大量文章中看到,此损失函数可以接受任何整数。 我输入的数据有误吗?有没有更简单的方法可以使神经网络正常工作?
dataset=numpy.genfromtxt("data.csv", delimiter=",")
labelset=numpy.genfromtxt("labels.csv", delimiter=",")
print(dataset.shape)
print(labelset.shape)
vn=dataset.shape[1]-2
X=dataset[:, 0:vn]
Y=labelset[:, 0:1]
train_data, test_data, train_labels, test_labels = train_test_split(X, Y, test_size=.3, random_state=5)
train_labels = numpy.squeeze(numpy.asarray(train_labels))
test_labels = numpy.squeeze(numpy.asarray(test_labels))
model=Sequential()
model.add(Dense(vn, input_dim=vn, activation='relu'))
model.add(Dense(1, kernel_initializer='normal', activation='relu'))
model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=['sparse_categorical_accuracy'])
model.fit(train_data, train_labels, epochs=100, batch_size=50, validation_data=(test_data, test_labels))
scores=model.evaluate(test_data, test_labels, verbose=0)
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
##Dataset example: [[4, 5, 6, 7],
## 5, 23, 6, 2],
## 2, 456, 7, 5]]
##Labels example: [1, 1, 4]
我得到的错误要点:接收到的标签值4超出有效范围[0,1)。标签值:1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
答案 0 :(得分:0)
在丢失的情况下稀疏意味着如果类索引与标签向量索引匹配,则您有一个非零的向量(在本例中为1)。因此,您必须提供stdClass
而不是'' Secuencia para guardar el nuevo 5 por que como nuevo archivo y preservar la plantilla original
Dim workbook_Name As Variant
workbook_Name = Application.GetSaveAsFilename(InitialFileName:="D:\Carpoto\AbInbev\Elaboracion y servicios") & "xlsm"
If workbook_Name <> False Then
ActiveWorkbook.SaveAs fileName:=workbook_Name
End If
Dim nuevopq As String
nuevopq = ActiveWorkbook.Name
' THIS SEQUENCE, OPEN THE CONSOLIDATE WORKBOOK
Dim directory As String, fileName As String, sheet As Worksheet
Application.ScreenUpdating = False
directory = "D:\Carpoto\AbInbev\"
fileName = Dir(directory & "Consolidado 5pq Planta 2019.xlsx")
Workbooks.Open (directory & fileName)
Windows("Consolidado 5pq Planta 2019.xlsx").Activate
' FIND THE NEXT EMPTY ROW TO COPY DATA HERE
Cells(Rows.Count, 1).End(xlUp).Select
ActiveCell.Offset(1, 0).Select
Dim CellRange As String
CellRange = ActiveCell.Address(False, False)
Dim consol As String
Dim wbkCur As Workbook
Dim wbkNew As Workbook
Set wbkCur = Workbooks("Consolidado 5pq Planta 2019.xlsx")
Set wbkNew = Workbooks(nuevopq)
'HERE I GET THE ERROR, WHEN I WANT TO COPY THE VALUE FROM D8 TO THE EMPTY CELL IN THE CONSOLIDATE WORKBOOK
wbkCur.Range(CellRange).Value = webkNew.Range("D8").Value
(假设总共有4个课程)。
您可以使用它来转换标签:
[0 0 0 1]