Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
fb74ae36
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
fb74ae36
编写于
3月 04, 2017
作者:
Y
Yu Yang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refine serialize
上级
0d5b4acb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
45 addition
and
3 deletion
+45
-3
demo/mnist/.gitignore
demo/mnist/.gitignore
+1
-0
demo/mnist/api_train_v2.py
demo/mnist/api_train_v2.py
+3
-0
python/paddle/v2/parameters.py
python/paddle/v2/parameters.py
+39
-1
python/paddle/v2/trainer.py
python/paddle/v2/trainer.py
+2
-2
未找到文件。
demo/mnist/.gitignore
浏览文件 @
fb74ae36
...
...
@@ -6,3 +6,4 @@ train.log
*pyc
.ipynb_checkpoints
params.pkl
params.tar
demo/mnist/api_train_v2.py
浏览文件 @
fb74ae36
...
...
@@ -103,6 +103,9 @@ def main():
cPickle
.
dump
(
parameters
,
f
,
protocol
=
cPickle
.
HIGHEST_PROTOCOL
)
with
open
(
'params.tar'
,
'w'
)
as
f
:
parameters
.
serialize_to_tar
(
f
)
elif
isinstance
(
event
,
paddle
.
event
.
EndPass
):
result
=
trainer
.
test
(
reader
=
paddle
.
reader
.
batched
(
paddle
.
dataset
.
mnist
.
test
(),
batch_size
=
128
))
...
...
python/paddle/v2/parameters.py
浏览文件 @
fb74ae36
import
numpy
as
np
import
py_paddle.swig_paddle
as
api
from
paddle.proto.ParameterConfig_pb2
import
ParameterConfig
import
struct
import
tarfile
import
cStringIO
from
topology
import
Topology
__all__
=
[
'Parameters'
,
'create'
]
...
...
@@ -235,6 +237,42 @@ class Parameters(object):
return
{
'conf'
:
param_conf
,
'params'
:
params
}
def
serialize
(
self
,
name
,
f
):
"""
:param name:
:param f:
:type f: file
:return:
"""
param
=
self
.
get
(
name
)
size
=
reduce
(
lambda
a
,
b
:
a
*
b
,
param
.
shape
)
f
.
write
(
struct
.
pack
(
"IIQ"
,
0
,
4
,
size
))
param
=
param
.
astype
(
np
.
float32
)
f
.
write
(
param
.
tobytes
())
def
deserialize
(
self
,
name
,
f
):
"""
:param name:
:param f:
:type f: file
:return:
"""
f
.
read
(
16
)
# header
arr
=
np
.
fromfile
(
f
,
dtype
=
np
.
float32
)
self
.
set
(
name
,
arr
.
reshape
(
self
.
get_shape
(
name
)))
def
serialize_to_tar
(
self
,
f
):
tar
=
tarfile
.
TarFile
(
fileobj
=
f
,
mode
=
'w'
)
for
nm
in
self
.
names
():
buf
=
cStringIO
.
StringIO
()
self
.
serialize
(
nm
,
buf
)
tarinfo
=
tarfile
.
TarInfo
(
name
=
nm
)
buf
.
seek
(
0
)
tarinfo
.
size
=
len
(
buf
.
getvalue
())
tar
.
addfile
(
tarinfo
,
buf
)
def
__setstate__
(
self
,
obj
):
Parameters
.
__init__
(
self
)
...
...
python/paddle/v2/trainer.py
浏览文件 @
fb74ae36
...
...
@@ -101,7 +101,7 @@ class SGD():
for
each_param
in
self
.
__gradient_machine__
.
getNonStaticParameters
(
):
updater
.
update
(
each_param
)
cost_sum
=
out_args
.
sum
Costs
()
cost_sum
=
out_args
.
sum
()
cost
=
cost_sum
/
len
(
data_batch
)
updater
.
finishBatch
(
cost
)
batch_evaluator
.
finish
()
...
...
@@ -137,7 +137,7 @@ class SGD():
num_samples
+=
len
(
data_batch
)
self
.
__gradient_machine__
.
forward
(
feeder
(
data_batch
),
out_args
,
api
.
PASS_TEST
)
total_cost
+=
out_args
.
sum
Costs
()
total_cost
+=
out_args
.
sum
()
self
.
__gradient_machine__
.
eval
(
evaluator
)
evaluator
.
finish
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录