Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
02906bf2
O
Opencv
项目概览
Greenplum
/
Opencv
10 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
02906bf2
编写于
8月 03, 2015
作者:
V
Vadim Pisarevsky
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #5102 from nzjrs:fix-python-digits
上级
157c94c0
e05b6bb6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
8 addition
and
44 deletion
+8
-44
samples/python2/digits.py
samples/python2/digits.py
+0
-2
samples/python2/digits_adjust.py
samples/python2/digits_adjust.py
+8
-42
未找到文件。
samples/python2/digits.py
浏览文件 @
02906bf2
...
...
@@ -77,7 +77,6 @@ class KNearest(StatModel):
self
.
model
=
cv2
.
ml
.
KNearest_create
()
def
train
(
self
,
samples
,
responses
):
self
.
model
=
cv2
.
ml
.
KNearest_create
()
self
.
model
.
train
(
samples
,
cv2
.
ml
.
ROW_SAMPLE
,
responses
)
def
predict
(
self
,
samples
):
...
...
@@ -93,7 +92,6 @@ class SVM(StatModel):
self
.
model
.
setType
(
cv2
.
ml
.
SVM_C_SVC
)
def
train
(
self
,
samples
,
responses
):
self
.
model
=
cv2
.
ml
.
SVM_create
()
self
.
model
.
train
(
samples
,
cv2
.
ml
.
ROW_SAMPLE
,
responses
)
def
predict
(
self
,
samples
):
...
...
samples/python2/digits_adjust.py
浏览文件 @
02906bf2
...
...
@@ -6,18 +6,12 @@ Grid search is used to find the best parameters for SVM and KNearest classifiers
SVM adjustment follows the guidelines given in
http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf
Threading or cloud computing (with http://www.picloud.com/)) may be used
to speedup the computation.
Usage:
digits_adjust.py [--model {svm|knearest}]
[--cloud] [--env <PiCloud environment>]
digits_adjust.py [--model {svm|knearest}]
--model {svm|knearest} - select the classifier (SVM is the default)
--cloud - use PiCloud computing platform
--env - cloud environment name
'''
# TODO cloud env setup tutorial
import
numpy
as
np
import
cv2
...
...
@@ -25,14 +19,6 @@ from multiprocessing.pool import ThreadPool
from
digits
import
*
try
:
import
cloud
have_cloud
=
True
except
ImportError
:
have_cloud
=
False
def
cross_validate
(
model_class
,
params
,
samples
,
labels
,
kfold
=
3
,
pool
=
None
):
n
=
len
(
samples
)
folds
=
np
.
array_split
(
np
.
arange
(
n
),
kfold
)
...
...
@@ -57,23 +43,10 @@ def cross_validate(model_class, params, samples, labels, kfold = 3, pool = None)
class
App
(
object
):
def
__init__
(
self
,
usecloud
=
False
,
cloud_env
=
''
):
if
usecloud
and
not
have_cloud
:
print
'warning: cloud module is not installed, running locally'
usecloud
=
False
self
.
usecloud
=
usecloud
self
.
cloud_env
=
cloud_env
if
self
.
usecloud
:
print
'uploading dataset to cloud...'
cloud
.
files
.
put
(
DIGITS_FN
)
self
.
preprocess_job
=
cloud
.
call
(
self
.
preprocess
,
_env
=
self
.
cloud_env
)
else
:
self
.
_samples
,
self
.
_labels
=
self
.
preprocess
()
def
__init__
(
self
):
self
.
_samples
,
self
.
_labels
=
self
.
preprocess
()
def
preprocess
(
self
):
if
self
.
usecloud
:
cloud
.
files
.
get
(
DIGITS_FN
)
digits
,
labels
=
load_digits
(
DIGITS_FN
)
shuffle
=
np
.
random
.
permutation
(
len
(
digits
))
digits
,
labels
=
digits
[
shuffle
],
labels
[
shuffle
]
...
...
@@ -82,18 +55,11 @@ class App(object):
return
samples
,
labels
def
get_dataset
(
self
):
if
self
.
usecloud
:
return
cloud
.
result
(
self
.
preprocess_job
)
else
:
return
self
.
_samples
,
self
.
_labels
return
self
.
_samples
,
self
.
_labels
def
run_jobs
(
self
,
f
,
jobs
):
if
self
.
usecloud
:
jids
=
cloud
.
map
(
f
,
jobs
,
_env
=
self
.
cloud_env
,
_profile
=
True
,
_depends_on
=
self
.
preprocess_job
)
ires
=
cloud
.
iresult
(
jids
)
else
:
pool
=
ThreadPool
(
processes
=
cv2
.
getNumberOfCPUs
())
ires
=
pool
.
imap_unordered
(
f
,
jobs
)
pool
=
ThreadPool
(
processes
=
cv2
.
getNumberOfCPUs
())
ires
=
pool
.
imap_unordered
(
f
,
jobs
)
return
ires
def
adjust_SVM
(
self
):
...
...
@@ -147,7 +113,7 @@ if __name__ == '__main__':
print
__doc__
args
,
_
=
getopt
.
getopt
(
sys
.
argv
[
1
:],
''
,
[
'model='
,
'cloud'
,
'env='
])
args
,
_
=
getopt
.
getopt
(
sys
.
argv
[
1
:],
''
,
[
'model='
])
args
=
dict
(
args
)
args
.
setdefault
(
'--model'
,
'svm'
)
args
.
setdefault
(
'--env'
,
''
)
...
...
@@ -156,7 +122,7 @@ if __name__ == '__main__':
sys
.
exit
(
1
)
t
=
clock
()
app
=
App
(
usecloud
=
'--cloud'
in
args
,
cloud_env
=
args
[
'--env'
]
)
app
=
App
()
if
args
[
'--model'
]
==
'knearest'
:
app
.
adjust_KNearest
()
else
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录