Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Crayon鑫
Paddle
提交
6f4b968f
P
Paddle
项目概览
Crayon鑫
/
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看板
提交
6f4b968f
编写于
8月 23, 2017
作者:
Q
qiaolongfei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
can train the parameters
上级
a13798e8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
10 deletion
+29
-10
python/paddle/v2/framework/tests/mnist.py
python/paddle/v2/framework/tests/mnist.py
+29
-10
未找到文件。
python/paddle/v2/framework/tests/mnist.py
浏览文件 @
6f4b968f
...
@@ -69,7 +69,7 @@ def init_param(param_name, dims):
...
@@ -69,7 +69,7 @@ def init_param(param_name, dims):
tensor
=
var
.
get_tensor
()
tensor
=
var
.
get_tensor
()
tensor
.
set_dims
(
dims
)
tensor
.
set_dims
(
dims
)
data
=
numpy
.
random
.
uniform
(
data
=
numpy
.
random
.
uniform
(
low
=
0.0
,
high
=
1.0
,
size
=
tensor
.
shape
()).
astype
(
"float32"
)
low
=
-
0.5
,
high
=
0.5
,
size
=
tensor
.
shape
()).
astype
(
"float32"
)
tensor
.
set
(
data
,
place
)
tensor
.
set
(
data
,
place
)
...
@@ -109,7 +109,7 @@ def fc_layer(net, input, size, act="softmax", bias=True, param=None, name=None):
...
@@ -109,7 +109,7 @@ def fc_layer(net, input, size, act="softmax", bias=True, param=None, name=None):
bias_name
=
name
+
".b"
bias_name
=
name
+
".b"
init_param
(
param_name
=
bias_name
,
dims
=
[
size
])
init_param
(
param_name
=
bias_name
,
dims
=
[
size
])
sgd_optimizer
(
sgd_optimizer
(
net
=
optimize_net
,
param_name
=
bias_name
,
learning_rate
=
0.01
)
net
=
optimize_net
,
param_name
=
bias_name
,
learning_rate
=
0.0
0
1
)
bias_out
=
name
+
".rowwise_add.out"
bias_out
=
name
+
".rowwise_add.out"
scope
.
new_var
(
bias_out
)
scope
.
new_var
(
bias_out
)
rowwise_append_op
=
Operator
(
rowwise_append_op
=
Operator
(
...
@@ -158,20 +158,33 @@ def print_inputs_outputs(op):
...
@@ -158,20 +158,33 @@ def print_inputs_outputs(op):
def
set_cost
():
def
set_cost
():
cost_data
=
numpy
.
array
(
scope
.
find_var
(
"cross_entropy_1"
).
get_tensor
())
cost_shape
=
numpy
.
array
(
scope
.
find_var
(
"cross_entropy_3"
).
get_tensor
(
)).
shape
cost_grad
=
scope
.
find_var
(
grad_var_name
(
"cross_entropy_3"
)).
get_tensor
()
cost_grad
.
set_dims
(
cost_shape
)
cost_grad
.
alloc_float
(
place
)
cost_grad
.
set
(
numpy
.
ones
(
cost_shape
).
astype
(
"float32"
),
place
)
def
print_cost
():
cost_data
=
numpy
.
array
(
scope
.
find_var
(
"cross_entropy_3"
).
get_tensor
())
print
(
cost_data
.
sum
()
/
len
(
cost_data
))
print
(
cost_data
.
sum
()
/
len
(
cost_data
))
cost_grad
=
scope
.
find_var
(
grad_var_name
(
"cross_entropy_1"
)).
get_tensor
()
cost_grad
.
set_dims
(
cost_data
.
shape
)
def
error_rate
(
predict
,
label
):
cost_grad
.
alloc_float
(
place
)
predict_var
=
numpy
.
array
(
scope
.
find_var
(
predict
).
get_tensor
()).
argmax
(
cost_grad
.
set
(
numpy
.
ones
(
cost_data
.
shape
).
astype
(
"float32"
),
place
)
axis
=
1
)
label
=
numpy
.
array
(
scope
.
find_var
(
label
).
get_tensor
())
error_num
=
numpy
.
sum
(
predict_var
!=
label
)
print
(
error_num
/
float
(
len
(
label
)))
images
=
data_layer
(
name
=
'pixel'
,
dims
=
[
BATCH_SIZE
,
784
])
images
=
data_layer
(
name
=
'pixel'
,
dims
=
[
BATCH_SIZE
,
784
])
label
=
data_layer
(
name
=
'label'
,
dims
=
[
BATCH_SIZE
])
label
=
data_layer
(
name
=
'label'
,
dims
=
[
BATCH_SIZE
])
fc
=
fc_layer
(
net
=
forward_network
,
input
=
images
,
size
=
10
,
act
=
"softmax"
)
fc1
=
fc_layer
(
net
=
forward_network
,
input
=
images
,
size
=
100
,
act
=
"sigmoid"
)
cost
=
cross_entropy_layer
(
net
=
forward_network
,
input
=
fc
,
label
=
label
)
fc2
=
fc_layer
(
net
=
forward_network
,
input
=
fc1
,
size
=
100
,
act
=
"sigmoid"
)
predict
=
fc_layer
(
net
=
forward_network
,
input
=
fc2
,
size
=
100
,
act
=
"softmax"
)
cost
=
cross_entropy_layer
(
net
=
forward_network
,
input
=
predict
,
label
=
label
)
forward_network
.
complete_add_op
(
True
)
forward_network
.
complete_add_op
(
True
)
backward_net
=
get_backward_net
(
forward_network
)
backward_net
=
get_backward_net
(
forward_network
)
...
@@ -192,8 +205,8 @@ reader = paddle.batch(
...
@@ -192,8 +205,8 @@ reader = paddle.batch(
PASS_NUM
=
1000
PASS_NUM
=
1000
for
pass_id
in
range
(
PASS_NUM
):
for
pass_id
in
range
(
PASS_NUM
):
batch_id
=
0
print
(
"pass["
+
str
(
pass_id
)
+
"]"
)
for
data
in
reader
():
for
data
in
reader
():
image
=
numpy
.
array
(
map
(
lambda
x
:
x
[
0
],
data
)).
astype
(
"float32"
)
image
=
numpy
.
array
(
map
(
lambda
x
:
x
[
0
],
data
)).
astype
(
"float32"
)
label
=
numpy
.
array
(
map
(
lambda
x
:
x
[
1
],
data
)).
astype
(
"int32"
)
label
=
numpy
.
array
(
map
(
lambda
x
:
x
[
1
],
data
)).
astype
(
"int32"
)
...
@@ -207,3 +220,9 @@ for pass_id in range(PASS_NUM):
...
@@ -207,3 +220,9 @@ for pass_id in range(PASS_NUM):
backward_net
.
run
(
scope
,
dev_ctx
)
backward_net
.
run
(
scope
,
dev_ctx
)
optimize_net
.
run
(
scope
,
dev_ctx
)
optimize_net
.
run
(
scope
,
dev_ctx
)
if
batch_id
%
100
==
0
:
print
(
"pass["
+
str
(
pass_id
)
+
"] batch_id["
+
str
(
batch_id
)
+
"]"
)
print_cost
()
error_rate
(
predict
,
"label"
)
batch_id
=
batch_id
+
1
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录