Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
909bd269
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看板
提交
909bd269
编写于
2月 24, 2017
作者:
Q
qiaolongfei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add topology test
上级
775f019f
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
96 addition
and
7 deletion
+96
-7
demo/mnist/api_train_v2.py
demo/mnist/api_train_v2.py
+1
-1
python/paddle/v2/data_type.py
python/paddle/v2/data_type.py
+2
-2
python/paddle/v2/tests/CMakeLists.txt
python/paddle/v2/tests/CMakeLists.txt
+4
-0
python/paddle/v2/tests/topology_test.py
python/paddle/v2/tests/topology_test.py
+79
-0
python/paddle/v2/topology.py
python/paddle/v2/topology.py
+10
-4
未找到文件。
demo/mnist/api_train_v2.py
浏览文件 @
909bd269
...
...
@@ -26,7 +26,7 @@ def main():
act
=
paddle
.
activation
.
Softmax
())
cost
=
paddle
.
layer
.
classification_cost
(
input
=
inference
,
label
=
label
)
parameters
=
paddle
.
parameters
.
create
(
[
cost
]
)
parameters
=
paddle
.
parameters
.
create
(
cost
)
for
param_name
in
parameters
.
keys
():
array
=
parameters
.
get
(
param_name
)
array
[:]
=
numpy
.
random
.
uniform
(
low
=-
1.0
,
high
=
1.0
,
size
=
array
.
shape
)
...
...
python/paddle/v2/data_type.py
浏览文件 @
909bd269
...
...
@@ -14,9 +14,9 @@
from
paddle.trainer.PyDataProvider2
import
\
InputType
,
dense_vector
,
sparse_binary_vector
,
\
sparse_vector
,
integer_value
sparse_vector
,
integer_value
,
DataType
__all__
=
[
'InputType'
,
'dense_vector'
,
'sparse_binary_vector'
,
'sparse_vector'
,
'integer_value'
'integer_value'
,
'DataType'
]
python/paddle/v2/tests/CMakeLists.txt
0 → 100644
浏览文件 @
909bd269
add_test
(
NAME topology_test
COMMAND
${
PROJ_ROOT
}
/paddle/.set_python_path.sh -d
${
PROJ_ROOT
}
/python/
${
PYTHON_EXECUTABLE
}
${
PROJ_ROOT
}
/python/paddle/v2/tests/topology_test.py
WORKING_DIRECTORY
${
PROJ_ROOT
}
/python/paddle
)
python/paddle/v2/tests/topology_test.py
0 → 100644
浏览文件 @
909bd269
# Copyright PaddlePaddle contributors. All Rights Reserved
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import
unittest
import
paddle.v2.layer
as
layer
import
paddle.v2.topology
as
topology
import
paddle.v2.data_type
as
data_type
import
paddle.trainer_config_helpers
as
conf_helps
class
TestTopology
(
unittest
.
TestCase
):
def
test_parse
(
self
):
pixel
=
layer
.
data
(
name
=
'pixel'
,
type
=
data_type
.
dense_vector
(
784
))
label
=
layer
.
data
(
name
=
'label'
,
type
=
data_type
.
integer_value
(
10
))
hidden
=
layer
.
fc
(
input
=
pixel
,
size
=
100
,
act
=
conf_helps
.
SigmoidActivation
())
inference
=
layer
.
fc
(
input
=
hidden
,
size
=
10
,
act
=
conf_helps
.
SoftmaxActivation
())
maxid
=
layer
.
max_id
(
input
=
inference
)
cost1
=
layer
.
classification_cost
(
input
=
inference
,
label
=
label
)
cost2
=
layer
.
cross_entropy_cost
(
input
=
inference
,
label
=
label
)
print
topology
.
Topology
(
cost2
).
proto
()
print
topology
.
Topology
([
cost1
]).
proto
()
print
topology
.
Topology
([
cost1
,
cost2
]).
proto
()
print
topology
.
Topology
(
cost2
).
proto
()
print
topology
.
Topology
([
inference
,
maxid
]).
proto
()
def
test_data_type
(
self
):
pixel
=
layer
.
data
(
name
=
'pixel'
,
type
=
data_type
.
dense_vector
(
784
))
label
=
layer
.
data
(
name
=
'label'
,
type
=
data_type
.
integer_value
(
10
))
hidden
=
layer
.
fc
(
input
=
pixel
,
size
=
100
,
act
=
conf_helps
.
SigmoidActivation
())
inference
=
layer
.
fc
(
input
=
hidden
,
size
=
10
,
act
=
conf_helps
.
SoftmaxActivation
())
cost
=
layer
.
classification_cost
(
input
=
inference
,
label
=
label
)
topo
=
topology
.
Topology
(
cost
)
type
=
topo
.
data_type
()
self
.
assertEqual
(
len
(
type
),
2
)
self
.
assertEqual
(
type
[
0
][
0
],
"pixel"
)
self
.
assertEqual
(
type
[
0
][
1
].
type
,
data_type
.
DataType
.
Dense
)
self
.
assertEqual
(
type
[
0
][
1
].
dim
,
784
)
self
.
assertEqual
(
type
[
1
][
0
],
"label"
)
self
.
assertEqual
(
type
[
1
][
1
].
type
,
data_type
.
DataType
.
Index
)
self
.
assertEqual
(
type
[
1
][
1
].
dim
,
10
)
def
test_get_layer
(
self
):
pixel
=
layer
.
data
(
name
=
'pixel'
,
type
=
data_type
.
dense_vector
(
784
))
label
=
layer
.
data
(
name
=
'label'
,
type
=
data_type
.
integer_value
(
10
))
hidden
=
layer
.
fc
(
input
=
pixel
,
size
=
100
,
act
=
conf_helps
.
SigmoidActivation
())
inference
=
layer
.
fc
(
input
=
hidden
,
size
=
10
,
act
=
conf_helps
.
SoftmaxActivation
())
cost
=
layer
.
classification_cost
(
input
=
inference
,
label
=
label
)
topo
=
topology
.
Topology
(
cost
)
pixel_layer
=
topo
.
get_layer
(
"pixel"
)
label_layer
=
topo
.
get_layer
(
"label"
)
self
.
assertEqual
(
pixel_layer
,
pixel
)
self
.
assertEqual
(
label_layer
,
label
)
if
__name__
==
'__main__'
:
unittest
.
main
()
python/paddle/v2/topology.py
浏览文件 @
909bd269
...
...
@@ -31,7 +31,8 @@ class Topology(object):
def
__init__
(
self
,
layers
):
if
not
isinstance
(
layers
,
collections
.
Sequence
):
raise
ValueError
(
"input of Topology should be a list of Layer"
)
__check_layer_type__
(
layers
)
layers
=
[
layers
]
for
layer
in
layers
:
if
not
isinstance
(
layer
,
v2_layer
.
LayerV2
):
raise
ValueError
(
'layer should have type paddle.layer.Layer'
)
...
...
@@ -97,6 +98,11 @@ class Topology(object):
return
data_types_lists
def
__check_layer_type__
(
layer
):
if
not
isinstance
(
layer
,
v2_layer
.
LayerV2
):
raise
ValueError
(
'layer should have type paddle.layer.Layer'
)
if
__name__
==
'__main__'
:
pixel
=
v2_layer
.
data
(
name
=
'pixel'
,
type
=
data_type
.
dense_vector
(
784
))
label
=
v2_layer
.
data
(
name
=
'label'
,
type
=
data_type
.
integer_value
(
10
))
...
...
@@ -110,8 +116,8 @@ if __name__ == '__main__':
cost1
=
v2_layer
.
classification_cost
(
input
=
inference
,
label
=
label
)
cost2
=
v2_layer
.
cross_entropy_cost
(
input
=
inference
,
label
=
label
)
print
Topology
(
cost1
).
proto
()
print
Topology
(
cost2
).
proto
()
print
Topology
(
cost1
,
cost2
).
proto
()
print
Topology
([
cost1
]).
proto
()
print
Topology
([
cost1
,
cost2
]).
proto
()
print
Topology
(
cost2
).
proto
()
print
Topology
(
inference
,
maxid
).
proto
()
print
Topology
(
[
inference
,
maxid
]
).
proto
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录