Python Opencv的神经网络的激活函数能自己设置吗?
试这用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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
C++接口就是这样
Python接口应该也差不多
或者
应该就用上了
我的opencv版本和你貌似不太一样,我用如下代码:
测试,可以运行