Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
ec6d48a7
P
PaddleHub
项目概览
PaddlePaddle
/
PaddleHub
1 年多 前同步成功
通知
283
Star
12117
Fork
2091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
200
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleHub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
200
Issue
200
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
ec6d48a7
编写于
9月 23, 2019
作者:
B
Bin Long
提交者:
GitHub
9月 23, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #165 from ShenYuhan/develop
add multiprocessing lock
上级
d76005e8
745bfb96
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
60 addition
and
1 deletion
+60
-1
RELEASE.md
RELEASE.md
+1
-1
paddlehub/common/hub_server.py
paddlehub/common/hub_server.py
+6
-0
paddlehub/common/lock.py
paddlehub/common/lock.py
+45
-0
paddlehub/module/module.py
paddlehub/module/module.py
+8
-0
未找到文件。
RELEASE.md
浏览文件 @
ec6d48a7
# `v1.2.0`
# `v1.2.0`
*
新增
**超参优化Auto Fine-tune**
,实现给定超参搜索空间,PaddleHub自动给出较佳的超参组合
*
支持两种优化策略:HAZero和PSHE2
...
...
paddlehub/common/hub_server.py
浏览文件 @
ec6d48a7
...
...
@@ -30,6 +30,7 @@ from paddlehub.common import utils, srv_utils
from
paddlehub.common.downloader
import
default_downloader
from
paddlehub.common.server_config
import
default_server_config
from
paddlehub.io.parser
import
yaml_parser
from
paddlehub.common.lock
import
lock
import
paddlehub
as
hub
RESOURCE_LIST_FILE
=
"resource_list_file.yml"
...
...
@@ -44,15 +45,20 @@ class HubServer(object):
utils
.
mkdir
(
hub
.
CONF_HOME
)
if
not
os
.
path
.
exists
(
config_file_path
):
with
open
(
config_file_path
,
'w+'
)
as
fp
:
lock
.
flock
(
fp
,
lock
.
LOCK_EX
)
fp
.
write
(
json
.
dumps
(
default_server_config
))
lock
.
flock
(
fp
,
lock
.
LOCK_UN
)
with
open
(
config_file_path
)
as
fp
:
self
.
config
=
json
.
load
(
fp
)
fp_lock
=
open
(
config_file_path
)
lock
.
flock
(
fp_lock
,
lock
.
LOCK_EX
)
utils
.
check_url
(
self
.
config
[
'server_url'
])
self
.
server_url
=
self
.
config
[
'server_url'
]
self
.
request
()
self
.
_load_resource_list_file_if_valid
()
lock
.
flock
(
fp_lock
,
lock
.
LOCK_UN
)
def
get_server_url
(
self
):
random
.
seed
(
int
(
time
.
time
()))
...
...
paddlehub/common/lock.py
浏览文件 @
ec6d48a7
import
fcntl
import
os
class
WinLock
(
object
):
def
flock
(
self
,
*
args
):
pass
def
__init__
(
self
):
self
.
LOCK_EX
=
""
self
.
LOCK_UN
=
""
class
Lock
(
object
):
_owner
=
None
def
__init__
(
self
):
self
.
LOCK_EX
=
fcntl
.
LOCK_EX
self
.
LOCK_UN
=
fcntl
.
LOCK_UN
self
.
LOCK_TE
=
""
if
os
.
name
==
"posix"
:
self
.
lock
=
fcntl
else
:
self
.
lock
=
WinLock
()
_lock
=
self
.
lock
def
get_lock
(
self
):
return
self
.
lock
def
flock
(
self
,
fp
,
cmd
):
if
cmd
==
fcntl
.
LOCK_UN
:
Lock
.
_owner
=
None
self
.
lock
.
flock
(
fp
,
cmd
)
elif
cmd
==
fcntl
.
LOCK_EX
:
if
Lock
.
_owner
is
None
:
Lock
.
_owner
=
os
.
getpid
()
self
.
lock
.
flock
(
fp
,
cmd
)
else
:
if
Lock
.
_owner
==
os
.
getpid
():
pass
else
:
self
.
lock
.
flock
(
fp
,
cmd
)
lock
=
Lock
()
paddlehub/module/module.py
浏览文件 @
ec6d48a7
...
...
@@ -29,8 +29,10 @@ import paddle.fluid as fluid
from
paddlehub.common
import
utils
from
paddlehub.common
import
paddle_helper
from
paddlehub.common.logger
import
logger
from
paddlehub.common.lock
import
lock
from
paddlehub.common.downloader
import
default_downloader
from
paddlehub.module
import
module_desc_pb2
from
paddlehub.common.dir
import
CONF_HOME
from
paddlehub.module
import
check_info_pb2
from
paddlehub.module.signature
import
Signature
,
create_signature
from
paddlehub.module.checker
import
ModuleChecker
...
...
@@ -117,10 +119,14 @@ class Module(object):
self
.
cache_fetch_dict
=
None
self
.
cache_program
=
None
fp_lock
=
open
(
os
.
path
.
join
(
CONF_HOME
,
'config.json'
))
lock
.
flock
(
fp_lock
,
lock
.
LOCK_EX
)
if
name
:
self
.
_init_with_name
(
name
=
name
,
version
=
version
)
lock
.
flock
(
fp_lock
,
lock
.
LOCK_UN
)
elif
module_dir
:
self
.
_init_with_module_file
(
module_dir
=
module_dir
[
0
])
lock
.
flock
(
fp_lock
,
lock
.
LOCK_UN
)
elif
signatures
:
if
processor
:
if
not
issubclass
(
processor
,
BaseProcessor
):
...
...
@@ -134,7 +140,9 @@ class Module(object):
self
.
processor
=
processor
self
.
_generate_module_info
(
module_info
)
self
.
_init_with_signature
(
signatures
=
signatures
)
lock
.
flock
(
fp_lock
,
lock
.
LOCK_UN
)
else
:
lock
.
flock
(
fp_lock
,
lock
.
LOCK_UN
)
raise
ValueError
(
"Module initialized parameter is empty"
)
def
_init_with_name
(
self
,
name
,
version
=
None
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录