试这用opencv的神经网络对iris做一个分类,得到输出结果的数值是介于-1到1之间的数字。
这是不是说明opencv默认的使用的激活函数是双曲正切函数?
我怎么样才能把opencv的神经网络的激活函数设置成为sigmoid函数呢?
这是我写的代码:
#-*- coding: utf-8 -*-
import cv2
import numpy as np
tmp = np.loadtxt("iris.csv", dtype=np.str, delimiter=",")
data = tmp[1:-1, 1:5]
data = data.astype(np.float32)
label = tmp[1:-1, 5]
Y = np.zeros([label.shape[0], 3])
Y[label=='"setosa"'] = np.array([1, 0, 0])
Y[label=='"versicolor"'] = np.array([0, 1, 0])
Y[label=='"virginica"'] = np.array([0, 0, 1])
layerSize = np.int32([4, 3, 3])
ann = cv2.ANN_MLP()
ann.create(layerSize)
ann.train(data, Y, None, None)
print data.shape, Y.shape
a = ann.predict(data)
print a
认证0级讲师