Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
51792022
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
51792022
编写于
8月 22, 2017
作者:
Q
qiaolongfei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refine code and add debug info
上级
5a8fbb7d
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
23 addition
and
24 deletion
+23
-24
python/paddle/v2/framework/tests/mnist.py
python/paddle/v2/framework/tests/mnist.py
+23
-24
未找到文件。
python/paddle/v2/framework/tests/mnist.py
浏览文件 @
51792022
...
...
@@ -52,7 +52,7 @@ def grad_var_name(var_name):
return
var_name
+
"@GRAD"
def
sgd_optimizer
(
net
,
param_name
,
learning_rate
=
0.01
):
def
sgd_optimizer
(
net
,
param_name
,
learning_rate
=
0.0
0
1
):
grad_name
=
grad_var_name
(
param_name
)
optimize_op
=
Operator
(
"sgd"
,
...
...
@@ -65,7 +65,6 @@ def sgd_optimizer(net, param_name, learning_rate=0.01):
# should use operator and add these to the init_network
def
init_param
(
param_name
,
dims
):
print
param_name
var
=
scope
.
new_var
(
param_name
)
tensor
=
var
.
get_tensor
()
tensor
.
set_dims
(
dims
)
...
...
@@ -158,17 +157,34 @@ def print_inputs_outputs(op):
print
(
""
)
def
set_cost
():
cost_data
=
numpy
.
array
(
scope
.
find_var
(
"cross_entropy_1"
).
get_tensor
())
# print(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
)
cost_grad
.
alloc_float
(
place
)
cost_grad
.
set
(
cost_data
,
place
)
images
=
data_layer
(
name
=
'pixel'
,
dims
=
[
BATCH_SIZE
,
784
])
label
=
data_layer
(
name
=
'label'
,
dims
=
[
BATCH_SIZE
])
fc
=
fc_layer
(
net
=
forward_network
,
input
=
images
,
size
=
10
,
act
=
"softmax"
)
cost
=
cross_entropy_layer
(
net
=
forward_network
,
input
=
fc
,
label
=
label
)
forward_network
.
complete_add_op
(
True
)
print
(
forward_network
)
backward_net
=
get_backward_net
(
forward_network
)
print
(
backward_net
)
optimize_net
.
complete_add_op
(
True
)
print
(
forward_network
)
print
(
backward_net
)
print
(
optimize_net
)
print_inputs_outputs
(
forward_network
)
print_inputs_outputs
(
backward_net
)
print_inputs_outputs
(
optimize_net
)
reader
=
paddle
.
batch
(
paddle
.
reader
.
shuffle
(
paddle
.
dataset
.
mnist
.
train
(),
buf_size
=
8192
),
...
...
@@ -176,34 +192,17 @@ reader = paddle.batch(
PASS_NUM
=
1000
for
pass_id
in
range
(
PASS_NUM
):
print
(
"===========forward=========="
)
# feed_data("pixel", numpy.random.random((BATCH_SIZE, 784)).astype('float32'))
# feed_data("label", numpy.ones(BATCH_SIZE).astype("int32"))
data
=
reader
().
next
()
image
=
numpy
.
array
(
map
(
lambda
x
:
x
[
0
],
data
)).
astype
(
"float32"
)
label
=
numpy
.
array
(
map
(
lambda
x
:
x
[
1
],
data
)).
astype
(
"int32"
)
feed_data
(
"pixel"
,
image
)
feed_data
(
"label"
,
label
)
forward_network
.
infer_shape
(
scope
)
print_inputs_outputs
(
forward_network
)
# print(numpy.array(scope.find_var("label").get_tensor())
)
forward_network
.
infer_shape
(
scope
)
forward_network
.
run
(
scope
,
dev_ctx
)
# print(numpy.array(scope.find_var("fc_0").get_tensor()))
print
(
"===========backward=========="
)
cost_data
=
numpy
.
array
(
scope
.
find_var
(
"cross_entropy_1"
).
get_tensor
())
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
)
cost_grad
.
alloc_float
(
place
)
cost_grad
.
set
(
cost_data
,
place
)
set_cost
()
backward_net
.
infer_shape
(
scope
)
print_inputs_outputs
(
backward_net
)
backward_net
.
run
(
scope
,
dev_ctx
)
print
(
"===========optimize_net=========="
)
print_inputs_outputs
(
optimize_net
)
optimize_net
.
run
(
scope
,
dev_ctx
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录