Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleDetection
提交
29fac3c0
P
PaddleDetection
项目概览
PaddlePaddle
/
PaddleDetection
大约 1 年 前同步成功
通知
694
Star
11112
Fork
2696
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
184
列表
看板
标记
里程碑
合并请求
40
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
184
Issue
184
列表
看板
标记
里程碑
合并请求
40
合并请求
40
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
29fac3c0
编写于
8月 10, 2018
作者:
Q
Qiyang Min
提交者:
GitHub
8月 10, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #12390 from velconia/port_python3_syntax
Apply 2to3 to current paddle main python code
上级
5a9ae411
39059eb7
变更
170
展开全部
显示空白变更内容
内联
并排
Showing
170 changed file
with
1058 addition
and
947 deletion
+1058
-947
CMakeLists.txt
CMakeLists.txt
+1
-0
paddle/fluid/pybind/pybind.cc
paddle/fluid/pybind/pybind.cc
+4
-2
python/paddle/dataset/cifar.py
python/paddle/dataset/cifar.py
+4
-3
python/paddle/dataset/common.py
python/paddle/dataset/common.py
+13
-12
python/paddle/dataset/conll05.py
python/paddle/dataset/conll05.py
+3
-2
python/paddle/dataset/flowers.py
python/paddle/dataset/flowers.py
+5
-4
python/paddle/dataset/image.py
python/paddle/dataset/image.py
+5
-5
python/paddle/dataset/imdb.py
python/paddle/dataset/imdb.py
+4
-4
python/paddle/dataset/imikolov.py
python/paddle/dataset/imikolov.py
+2
-2
python/paddle/dataset/mnist.py
python/paddle/dataset/mnist.py
+1
-1
python/paddle/dataset/movielens.py
python/paddle/dataset/movielens.py
+5
-5
python/paddle/dataset/mq2007.py
python/paddle/dataset/mq2007.py
+5
-5
python/paddle/dataset/sentiment.py
python/paddle/dataset/sentiment.py
+6
-5
python/paddle/dataset/tests/common_test.py
python/paddle/dataset/tests/common_test.py
+3
-3
python/paddle/dataset/tests/imikolov_test.py
python/paddle/dataset/tests/imikolov_test.py
+1
-1
python/paddle/dataset/tests/test_sentiment.py
python/paddle/dataset/tests/test_sentiment.py
+2
-3
python/paddle/dataset/uci_housing.py
python/paddle/dataset/uci_housing.py
+6
-3
python/paddle/dataset/wmt14.py
python/paddle/dataset/wmt14.py
+2
-2
python/paddle/dataset/wmt16.py
python/paddle/dataset/wmt16.py
+3
-1
python/paddle/fluid/__init__.py
python/paddle/fluid/__init__.py
+42
-42
python/paddle/fluid/annotations.py
python/paddle/fluid/annotations.py
+2
-1
python/paddle/fluid/backward.py
python/paddle/fluid/backward.py
+75
-57
python/paddle/fluid/clip.py
python/paddle/fluid/clip.py
+8
-8
python/paddle/fluid/concurrency.py
python/paddle/fluid/concurrency.py
+4
-4
python/paddle/fluid/contrib/__init__.py
python/paddle/fluid/contrib/__init__.py
+4
-4
python/paddle/fluid/contrib/decoder/__init__.py
python/paddle/fluid/contrib/decoder/__init__.py
+2
-2
python/paddle/fluid/contrib/decoder/beam_search_decoder.py
python/paddle/fluid/contrib/decoder/beam_search_decoder.py
+7
-5
python/paddle/fluid/data_feeder.py
python/paddle/fluid/data_feeder.py
+16
-12
python/paddle/fluid/debugger.py
python/paddle/fluid/debugger.py
+2
-2
python/paddle/fluid/evaluator.py
python/paddle/fluid/evaluator.py
+5
-5
python/paddle/fluid/executor.py
python/paddle/fluid/executor.py
+8
-7
python/paddle/fluid/framework.py
python/paddle/fluid/framework.py
+70
-49
python/paddle/fluid/graphviz.py
python/paddle/fluid/graphviz.py
+5
-4
python/paddle/fluid/inferencer.py
python/paddle/fluid/inferencer.py
+8
-8
python/paddle/fluid/initializer.py
python/paddle/fluid/initializer.py
+3
-3
python/paddle/fluid/io.py
python/paddle/fluid/io.py
+114
-101
python/paddle/fluid/layer_helper.py
python/paddle/fluid/layer_helper.py
+12
-8
python/paddle/fluid/layers/__init__.py
python/paddle/fluid/layers/__init__.py
+19
-19
python/paddle/fluid/layers/control_flow.py
python/paddle/fluid/layers/control_flow.py
+20
-19
python/paddle/fluid/layers/detection.py
python/paddle/fluid/layers/detection.py
+6
-5
python/paddle/fluid/layers/device.py
python/paddle/fluid/layers/device.py
+1
-1
python/paddle/fluid/layers/io.py
python/paddle/fluid/layers/io.py
+18
-18
python/paddle/fluid/layers/layer_function_generator.py
python/paddle/fluid/layers/layer_function_generator.py
+4
-4
python/paddle/fluid/layers/learning_rate_scheduler.py
python/paddle/fluid/layers/learning_rate_scheduler.py
+4
-4
python/paddle/fluid/layers/math_op_patch.py
python/paddle/fluid/layers/math_op_patch.py
+1
-1
python/paddle/fluid/layers/metric_op.py
python/paddle/fluid/layers/metric_op.py
+1
-1
python/paddle/fluid/layers/nn.py
python/paddle/fluid/layers/nn.py
+5
-4
python/paddle/fluid/layers/ops.py
python/paddle/fluid/layers/ops.py
+1
-1
python/paddle/fluid/layers/tensor.py
python/paddle/fluid/layers/tensor.py
+1
-1
python/paddle/fluid/lod_tensor.py
python/paddle/fluid/lod_tensor.py
+13
-13
python/paddle/fluid/metrics.py
python/paddle/fluid/metrics.py
+3
-3
python/paddle/fluid/net_drawer.py
python/paddle/fluid/net_drawer.py
+6
-6
python/paddle/fluid/nets.py
python/paddle/fluid/nets.py
+7
-6
python/paddle/fluid/op.py
python/paddle/fluid/op.py
+7
-5
python/paddle/fluid/optimizer.py
python/paddle/fluid/optimizer.py
+9
-9
python/paddle/fluid/parallel_executor.py
python/paddle/fluid/parallel_executor.py
+14
-11
python/paddle/fluid/param_attr.py
python/paddle/fluid/param_attr.py
+5
-3
python/paddle/fluid/profiler.py
python/paddle/fluid/profiler.py
+2
-2
python/paddle/fluid/recordio_writer.py
python/paddle/fluid/recordio_writer.py
+1
-1
python/paddle/fluid/regularizer.py
python/paddle/fluid/regularizer.py
+1
-1
python/paddle/fluid/tests/book/high-level-api/fit_a_line/test_fit_a_line.py
...d/tests/book/high-level-api/fit_a_line/test_fit_a_line.py
+1
-1
python/paddle/fluid/tests/book/high-level-api/image_classification/cifar10_small_test_set.py
...-level-api/image_classification/cifar10_small_test_set.py
+4
-3
python/paddle/fluid/tests/book/high-level-api/image_classification/test_image_classification_resnet.py
.../image_classification/test_image_classification_resnet.py
+0
-2
python/paddle/fluid/tests/book/high-level-api/image_classification/test_image_classification_vgg.py
...api/image_classification/test_image_classification_vgg.py
+0
-2
python/paddle/fluid/tests/book/high-level-api/label_semantic_roles/test_label_semantic_roles_newapi.py
.../label_semantic_roles/test_label_semantic_roles_newapi.py
+10
-11
python/paddle/fluid/tests/book/high-level-api/machine_translation/test_machine_translation.py
...level-api/machine_translation/test_machine_translation.py
+2
-2
python/paddle/fluid/tests/book/high-level-api/recognize_digits/test_recognize_digits_conv.py
...-level-api/recognize_digits/test_recognize_digits_conv.py
+5
-3
python/paddle/fluid/tests/book/high-level-api/recognize_digits/test_recognize_digits_mlp.py
...h-level-api/recognize_digits/test_recognize_digits_mlp.py
+1
-1
python/paddle/fluid/tests/book/high-level-api/recommender_system/test_recommender_system_newapi.py
...-api/recommender_system/test_recommender_system_newapi.py
+3
-2
python/paddle/fluid/tests/book/high-level-api/understand_sentiment/test_understand_sentiment_conv.py
...pi/understand_sentiment/test_understand_sentiment_conv.py
+7
-9
python/paddle/fluid/tests/book/high-level-api/understand_sentiment/test_understand_sentiment_dynamic_rnn.py
...rstand_sentiment/test_understand_sentiment_dynamic_rnn.py
+7
-9
python/paddle/fluid/tests/book/high-level-api/understand_sentiment/test_understand_sentiment_stacked_lstm.py
...stand_sentiment/test_understand_sentiment_stacked_lstm.py
+7
-9
python/paddle/fluid/tests/book/notest_understand_sentiment.py
...on/paddle/fluid/tests/book/notest_understand_sentiment.py
+8
-8
python/paddle/fluid/tests/book/test_fit_a_line.py
python/paddle/fluid/tests/book/test_fit_a_line.py
+1
-1
python/paddle/fluid/tests/book/test_image_classification.py
python/paddle/fluid/tests/book/test_image_classification.py
+1
-3
python/paddle/fluid/tests/book/test_label_semantic_roles.py
python/paddle/fluid/tests/book/test_label_semantic_roles.py
+7
-7
python/paddle/fluid/tests/book/test_machine_translation.py
python/paddle/fluid/tests/book/test_machine_translation.py
+3
-3
python/paddle/fluid/tests/book/test_recognize_digits.py
python/paddle/fluid/tests/book/test_recognize_digits.py
+0
-1
python/paddle/fluid/tests/book/test_recommender_system.py
python/paddle/fluid/tests/book/test_recommender_system.py
+6
-6
python/paddle/fluid/tests/book/test_rnn_encoder_decoder.py
python/paddle/fluid/tests/book/test_rnn_encoder_decoder.py
+7
-7
python/paddle/fluid/tests/book/test_word2vec.py
python/paddle/fluid/tests/book/test_word2vec.py
+10
-8
python/paddle/fluid/tests/book_memory_optimization/test_memopt_fit_a_line.py
.../tests/book_memory_optimization/test_memopt_fit_a_line.py
+1
-1
python/paddle/fluid/tests/book_memory_optimization/test_memopt_image_classification_train.py
...ry_optimization/test_memopt_image_classification_train.py
+0
-2
python/paddle/fluid/tests/book_memory_optimization/test_memopt_machine_translation.py
...ok_memory_optimization/test_memopt_machine_translation.py
+1
-1
python/paddle/fluid/tests/demo/fc_gan.py
python/paddle/fluid/tests/demo/fc_gan.py
+2
-2
python/paddle/fluid/tests/demo/file_reader/convert_data_to_recordio.py
.../fluid/tests/demo/file_reader/convert_data_to_recordio.py
+1
-1
python/paddle/fluid/tests/no_test_concurrency.py
python/paddle/fluid/tests/no_test_concurrency.py
+1
-1
python/paddle/fluid/tests/test_beam_search_decoder.py
python/paddle/fluid/tests/test_beam_search_decoder.py
+4
-4
python/paddle/fluid/tests/test_detection.py
python/paddle/fluid/tests/test_detection.py
+0
-1
python/paddle/fluid/tests/test_error_clip.py
python/paddle/fluid/tests/test_error_clip.py
+0
-1
python/paddle/fluid/tests/test_if_else_op.py
python/paddle/fluid/tests/test_if_else_op.py
+6
-6
python/paddle/fluid/tests/unittests/benchmark.py
python/paddle/fluid/tests/unittests/benchmark.py
+5
-4
python/paddle/fluid/tests/unittests/dist_se_resnext.py
python/paddle/fluid/tests/unittests/dist_se_resnext.py
+3
-2
python/paddle/fluid/tests/unittests/op_test.py
python/paddle/fluid/tests/unittests/op_test.py
+12
-10
python/paddle/fluid/tests/unittests/parallel_executor_test_base.py
...ddle/fluid/tests/unittests/parallel_executor_test_base.py
+4
-4
python/paddle/fluid/tests/unittests/test_accuracy_op.py
python/paddle/fluid/tests/unittests/test_accuracy_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_adam_op.py
python/paddle/fluid/tests/unittests/test_adam_op.py
+2
-2
python/paddle/fluid/tests/unittests/test_array_read_write_op.py
.../paddle/fluid/tests/unittests/test_array_read_write_op.py
+3
-2
python/paddle/fluid/tests/unittests/test_batch_norm_op.py
python/paddle/fluid/tests/unittests/test_batch_norm_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_beam_search_op.py
python/paddle/fluid/tests/unittests/test_beam_search_op.py
+1
-2
python/paddle/fluid/tests/unittests/test_bipartite_match_op.py
...n/paddle/fluid/tests/unittests/test_bipartite_match_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_chunk_eval_op.py
python/paddle/fluid/tests/unittests/test_chunk_eval_op.py
+4
-3
python/paddle/fluid/tests/unittests/test_conditional_block.py
...on/paddle/fluid/tests/unittests/test_conditional_block.py
+2
-2
python/paddle/fluid/tests/unittests/test_conv_shift_op.py
python/paddle/fluid/tests/unittests/test_conv_shift_op.py
+2
-2
python/paddle/fluid/tests/unittests/test_create_op_doc_string.py
...paddle/fluid/tests/unittests/test_create_op_doc_string.py
+1
-1
python/paddle/fluid/tests/unittests/test_data_balance.py
python/paddle/fluid/tests/unittests/test_data_balance.py
+4
-4
python/paddle/fluid/tests/unittests/test_default_scope_funcs.py
.../paddle/fluid/tests/unittests/test_default_scope_funcs.py
+1
-1
python/paddle/fluid/tests/unittests/test_detection_map_op.py
python/paddle/fluid/tests/unittests/test_detection_map_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_dist_mnist.py
python/paddle/fluid/tests/unittests/test_dist_mnist.py
+3
-2
python/paddle/fluid/tests/unittests/test_dist_transpiler.py
python/paddle/fluid/tests/unittests/test_dist_transpiler.py
+3
-3
python/paddle/fluid/tests/unittests/test_dist_word2vec.py
python/paddle/fluid/tests/unittests/test_dist_word2vec.py
+2
-2
python/paddle/fluid/tests/unittests/test_dyn_rnn.py
python/paddle/fluid/tests/unittests/test_dyn_rnn.py
+1
-1
python/paddle/fluid/tests/unittests/test_dynrnn_gradient_check.py
...addle/fluid/tests/unittests/test_dynrnn_gradient_check.py
+28
-26
python/paddle/fluid/tests/unittests/test_dynrnn_static_input.py
.../paddle/fluid/tests/unittests/test_dynrnn_static_input.py
+9
-9
python/paddle/fluid/tests/unittests/test_elementwise_gradient_op.py
...dle/fluid/tests/unittests/test_elementwise_gradient_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_gru_op.py
python/paddle/fluid/tests/unittests/test_gru_op.py
+5
-4
python/paddle/fluid/tests/unittests/test_gru_unit_op.py
python/paddle/fluid/tests/unittests/test_gru_unit_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_image_classification_layer.py
.../fluid/tests/unittests/test_image_classification_layer.py
+3
-3
python/paddle/fluid/tests/unittests/test_inference_model_io.py
...n/paddle/fluid/tests/unittests/test_inference_model_io.py
+1
-1
python/paddle/fluid/tests/unittests/test_layer_norm_op.py
python/paddle/fluid/tests/unittests/test_layer_norm_op.py
+1
-0
python/paddle/fluid/tests/unittests/test_layers.py
python/paddle/fluid/tests/unittests/test_layers.py
+2
-2
python/paddle/fluid/tests/unittests/test_lod_rank_table.py
python/paddle/fluid/tests/unittests/test_lod_rank_table.py
+1
-1
python/paddle/fluid/tests/unittests/test_lod_tensor_array.py
python/paddle/fluid/tests/unittests/test_lod_tensor_array.py
+2
-2
python/paddle/fluid/tests/unittests/test_lod_tensor_array_ops.py
...paddle/fluid/tests/unittests/test_lod_tensor_array_ops.py
+10
-6
python/paddle/fluid/tests/unittests/test_lookup_table_op.py
python/paddle/fluid/tests/unittests/test_lookup_table_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_mean_iou.py
python/paddle/fluid/tests/unittests/test_mean_iou.py
+1
-1
python/paddle/fluid/tests/unittests/test_multiclass_nms_op.py
...on/paddle/fluid/tests/unittests/test_multiclass_nms_op.py
+2
-2
python/paddle/fluid/tests/unittests/test_nce.py
python/paddle/fluid/tests/unittests/test_nce.py
+1
-1
python/paddle/fluid/tests/unittests/test_one_hot_op.py
python/paddle/fluid/tests/unittests/test_one_hot_op.py
+5
-5
python/paddle/fluid/tests/unittests/test_parallel_executor_crf.py
...addle/fluid/tests/unittests/test_parallel_executor_crf.py
+3
-3
python/paddle/fluid/tests/unittests/test_parallel_executor_fetch_feed.py
...luid/tests/unittests/test_parallel_executor_fetch_feed.py
+3
-3
python/paddle/fluid/tests/unittests/test_parallel_executor_mnist.py
...dle/fluid/tests/unittests/test_parallel_executor_mnist.py
+4
-4
python/paddle/fluid/tests/unittests/test_parallel_executor_test_while_train.py
...ests/unittests/test_parallel_executor_test_while_train.py
+2
-2
python/paddle/fluid/tests/unittests/test_parallel_op.py
python/paddle/fluid/tests/unittests/test_parallel_op.py
+12
-11
python/paddle/fluid/tests/unittests/test_polygon_box_transform.py
...addle/fluid/tests/unittests/test_polygon_box_transform.py
+2
-2
python/paddle/fluid/tests/unittests/test_pool2d_op.py
python/paddle/fluid/tests/unittests/test_pool2d_op.py
+4
-4
python/paddle/fluid/tests/unittests/test_pool3d_op.py
python/paddle/fluid/tests/unittests/test_pool3d_op.py
+6
-6
python/paddle/fluid/tests/unittests/test_pool_max_op.py
python/paddle/fluid/tests/unittests/test_pool_max_op.py
+9
-9
python/paddle/fluid/tests/unittests/test_positive_negative_pair_op.py
...e/fluid/tests/unittests/test_positive_negative_pair_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_precision_recall_op.py
.../paddle/fluid/tests/unittests/test_precision_recall_op.py
+10
-10
python/paddle/fluid/tests/unittests/test_protobuf_descs.py
python/paddle/fluid/tests/unittests/test_protobuf_descs.py
+2
-2
python/paddle/fluid/tests/unittests/test_reader_reset.py
python/paddle/fluid/tests/unittests/test_reader_reset.py
+1
-1
python/paddle/fluid/tests/unittests/test_recurrent_op.py
python/paddle/fluid/tests/unittests/test_recurrent_op.py
+4
-4
python/paddle/fluid/tests/unittests/test_seq_conv.py
python/paddle/fluid/tests/unittests/test_seq_conv.py
+3
-3
python/paddle/fluid/tests/unittests/test_sequence_expand.py
python/paddle/fluid/tests/unittests/test_sequence_expand.py
+2
-2
python/paddle/fluid/tests/unittests/test_sequence_reshape.py
python/paddle/fluid/tests/unittests/test_sequence_reshape.py
+1
-1
python/paddle/fluid/tests/unittests/test_shrink_rnn_memory.py
...on/paddle/fluid/tests/unittests/test_shrink_rnn_memory.py
+1
-1
python/paddle/fluid/tests/unittests/test_split_op.py
python/paddle/fluid/tests/unittests/test_split_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_split_selected_rows_op.py
...ddle/fluid/tests/unittests/test_split_selected_rows_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_spp_op.py
python/paddle/fluid/tests/unittests/test_spp_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_top_k_op.py
python/paddle/fluid/tests/unittests/test_top_k_op.py
+2
-2
python/paddle/fluid/tests/unittests/test_unpool_op.py
python/paddle/fluid/tests/unittests/test_unpool_op.py
+8
-8
python/paddle/fluid/tests/unittests/test_while_op.py
python/paddle/fluid/tests/unittests/test_while_op.py
+1
-1
python/paddle/fluid/tests/unittests/testsuite.py
python/paddle/fluid/tests/unittests/testsuite.py
+1
-1
python/paddle/fluid/tests/unittests/transformer_model.py
python/paddle/fluid/tests/unittests/transformer_model.py
+3
-2
python/paddle/fluid/trainer.py
python/paddle/fluid/trainer.py
+40
-40
python/paddle/fluid/transpiler/__init__.py
python/paddle/fluid/transpiler/__init__.py
+4
-4
python/paddle/fluid/transpiler/details/__init__.py
python/paddle/fluid/transpiler/details/__init__.py
+2
-2
python/paddle/fluid/transpiler/details/program_utils.py
python/paddle/fluid/transpiler/details/program_utils.py
+2
-2
python/paddle/fluid/transpiler/distribute_transpiler.py
python/paddle/fluid/transpiler/distribute_transpiler.py
+27
-26
python/paddle/fluid/transpiler/inference_transpiler.py
python/paddle/fluid/transpiler/inference_transpiler.py
+1
-1
python/paddle/fluid/transpiler/memory_optimization_transpiler.py
...paddle/fluid/transpiler/memory_optimization_transpiler.py
+15
-10
python/paddle/fluid/unique_name.py
python/paddle/fluid/unique_name.py
+4
-1
python/paddle/reader/creator.py
python/paddle/reader/creator.py
+5
-2
python/paddle/reader/decorator.py
python/paddle/reader/decorator.py
+9
-6
python/paddle/reader/tests/decorator_test.py
python/paddle/reader/tests/decorator_test.py
+2
-2
python/paddle/trainer/PyDataProviderWrapper.py
python/paddle/trainer/PyDataProviderWrapper.py
+1
-1
python/paddle/trainer_config_helpers/data_sources.py
python/paddle/trainer_config_helpers/data_sources.py
+1
-1
python/paddle/trainer_config_helpers/layers.py
python/paddle/trainer_config_helpers/layers.py
+1
-1
tools/test_runner.py
tools/test_runner.py
+8
-4
未找到文件。
CMakeLists.txt
浏览文件 @
29fac3c0
...
...
@@ -73,6 +73,7 @@ option(PY_VERSION "Compile PaddlePaddle with python3 support" ${PY_VER
if
(
NOT PY_VERSION
)
set
(
PY_VERSION 2.7
)
endif
()
set
(
PYBIND11_PYTHON_VERSION
${
PY_VERSION
}
)
# CMAKE_BUILD_TYPE
if
(
NOT CMAKE_BUILD_TYPE
)
...
...
paddle/fluid/pybind/pybind.cc
浏览文件 @
29fac3c0
...
...
@@ -394,8 +394,10 @@ All parameter, weight, gradient are variables in Paddle.
InferenceOptimize
(
*
(
origin
.
Proto
()),
&
pruned_desc
);
return
new
ProgramDesc
(
pruned_desc
);
});
m
.
def
(
"empty_var_name"
,
[]()
{
return
framework
::
kEmptyVarName
;
});
m
.
def
(
"grad_var_suffix"
,
[]()
{
return
framework
::
kGradVarSuffix
;
});
m
.
def
(
"empty_var_name"
,
[]()
{
return
std
::
string
(
framework
::
kEmptyVarName
);
});
m
.
def
(
"grad_var_suffix"
,
[]()
{
return
std
::
string
(
framework
::
kGradVarSuffix
);
});
m
.
def_submodule
(
"var_names"
,
"The module will return special predefined variable name in Paddle"
)
...
...
python/paddle/dataset/cifar.py
浏览文件 @
29fac3c0
...
...
@@ -28,11 +28,12 @@ images per class.
"""
import
cPickle
import
itertools
import
numpy
import
paddle.dataset.common
import
tarfile
from
six.moves
import
zip
from
six.moves
import
cPickle
as
pickle
__all__
=
[
'train100'
,
'test100'
,
'train10'
,
'test10'
,
'convert'
]
...
...
@@ -48,7 +49,7 @@ def reader_creator(filename, sub_name, cycle=False):
data
=
batch
[
'data'
]
labels
=
batch
.
get
(
'labels'
,
batch
.
get
(
'fine_labels'
,
None
))
assert
labels
is
not
None
for
sample
,
label
in
itertools
.
i
zip
(
data
,
labels
):
for
sample
,
label
in
zip
(
data
,
labels
):
yield
(
sample
/
255.0
).
astype
(
numpy
.
float32
),
int
(
label
)
def
reader
():
...
...
@@ -58,7 +59,7 @@ def reader_creator(filename, sub_name, cycle=False):
while
True
:
for
name
in
names
:
batch
=
cP
ickle
.
load
(
f
.
extractfile
(
name
))
batch
=
p
ickle
.
load
(
f
.
extractfile
(
name
))
for
item
in
read_batch
(
batch
):
yield
item
if
not
cycle
:
...
...
python/paddle/dataset/common.py
浏览文件 @
29fac3c0
...
...
@@ -20,9 +20,8 @@ import shutil
import
sys
import
importlib
import
paddle.dataset
import
cP
ickle
import
six.moves.cPickle
as
p
ickle
import
glob
import
cPickle
as
pickle
__all__
=
[
'DATA_HOME'
,
...
...
@@ -75,13 +74,13 @@ def download(url, module_name, md5sum, save_name=None):
retry_limit
=
3
while
not
(
os
.
path
.
exists
(
filename
)
and
md5file
(
filename
)
==
md5sum
):
if
os
.
path
.
exists
(
filename
):
print
"file md5"
,
md5file
(
filename
),
md5sum
print
(
"file md5"
,
md5file
(
filename
),
md5sum
)
if
retry
<
retry_limit
:
retry
+=
1
else
:
raise
RuntimeError
(
"Cannot download {0} within retry limit {1}"
.
format
(
url
,
retry_limit
))
print
"Cache file %s not found, downloading %s"
%
(
filename
,
url
)
print
(
"Cache file %s not found, downloading %s"
%
(
filename
,
url
)
)
r
=
requests
.
get
(
url
,
stream
=
True
)
total_length
=
r
.
headers
.
get
(
'content-length'
)
...
...
@@ -104,8 +103,9 @@ def download(url, module_name, md5sum, save_name=None):
def
fetch_all
():
for
module_name
in
filter
(
lambda
x
:
not
x
.
startswith
(
"__"
),
dir
(
paddle
.
dataset
)):
for
module_name
in
[
x
for
x
in
dir
(
paddle
.
dataset
)
if
not
x
.
startswith
(
"__"
)
]:
if
"fetch"
in
dir
(
importlib
.
import_module
(
"paddle.dataset.%s"
%
module_name
)):
getattr
(
...
...
@@ -114,8 +114,9 @@ def fetch_all():
def
fetch_all_recordio
(
path
):
for
module_name
in
filter
(
lambda
x
:
not
x
.
startswith
(
"__"
),
dir
(
paddle
.
dataset
)):
for
module_name
in
[
x
for
x
in
dir
(
paddle
.
dataset
)
if
not
x
.
startswith
(
"__"
)
]:
if
"convert"
in
dir
(
importlib
.
import_module
(
"paddle.dataset.%s"
%
module_name
))
and
\
not
module_name
==
"common"
:
...
...
@@ -126,7 +127,7 @@ def fetch_all_recordio(path):
"convert"
)(
ds_path
)
def
split
(
reader
,
line_count
,
suffix
=
"%05d.pickle"
,
dumper
=
cP
ickle
.
dump
):
def
split
(
reader
,
line_count
,
suffix
=
"%05d.pickle"
,
dumper
=
p
ickle
.
dump
):
"""
you can call the function as:
...
...
@@ -167,7 +168,7 @@ def split(reader, line_count, suffix="%05d.pickle", dumper=cPickle.dump):
def
cluster_files_reader
(
files_pattern
,
trainer_count
,
trainer_id
,
loader
=
cP
ickle
.
load
):
loader
=
p
ickle
.
load
):
"""
Create a reader that yield element from the given files, select
a file set according trainer count and trainer_id
...
...
@@ -188,7 +189,7 @@ def cluster_files_reader(files_pattern,
my_file_list
=
[]
for
idx
,
fn
in
enumerate
(
file_list
):
if
idx
%
trainer_count
==
trainer_id
:
print
"append file: %s"
%
fn
print
(
"append file: %s"
%
fn
)
my_file_list
.
append
(
fn
)
for
fn
in
my_file_list
:
with
open
(
fn
,
"r"
)
as
f
:
...
...
@@ -221,7 +222,7 @@ def convert(output_path, reader, line_count, name_prefix):
for
l
in
lines
:
# FIXME(Yancey1989):
# dumps with protocol: pickle.HIGHEST_PROTOCOL
writer
.
write
(
cP
ickle
.
dumps
(
l
))
writer
.
write
(
p
ickle
.
dumps
(
l
))
writer
.
close
()
lines
=
[]
...
...
python/paddle/dataset/conll05.py
浏览文件 @
29fac3c0
...
...
@@ -24,6 +24,7 @@ import tarfile
import
gzip
import
itertools
import
paddle.dataset.common
from
six.moves
import
zip
__all__
=
[
'test, get_dict'
,
'get_embedding'
,
'convert'
]
...
...
@@ -87,12 +88,12 @@ def corpus_reader(data_path, words_name, props_name):
sentences
=
[]
labels
=
[]
one_seg
=
[]
for
word
,
label
in
itertools
.
i
zip
(
words_file
,
props_file
):
for
word
,
label
in
zip
(
words_file
,
props_file
):
word
=
word
.
strip
()
label
=
label
.
strip
().
split
()
if
len
(
label
)
==
0
:
# end of sentence
for
i
in
x
range
(
len
(
one_seg
[
0
])):
for
i
in
range
(
len
(
one_seg
[
0
])):
a_kind_lable
=
[
x
[
i
]
for
x
in
one_seg
]
labels
.
append
(
a_kind_lable
)
...
...
python/paddle/dataset/flowers.py
浏览文件 @
29fac3c0
...
...
@@ -28,10 +28,9 @@ Graphics and Image Processing (2008)
http://www.robots.ox.ac.uk/~vgg/publications/papers/nilsback08.{pdf,ps.gz}.
"""
import
cPickle
import
itertools
import
functools
from
common
import
download
from
.
common
import
download
import
tarfile
import
scipy.io
as
scio
from
paddle.dataset.image
import
*
...
...
@@ -39,6 +38,8 @@ from paddle.reader import *
import
os
import
numpy
as
np
from
multiprocessing
import
cpu_count
from
six.moves
import
cPickle
as
pickle
from
six.moves
import
zip
__all__
=
[
'train'
,
'test'
,
'valid'
]
DATA_URL
=
'http://www.robots.ox.ac.uk/~vgg/data/flowers/102/102flowers.tgz'
...
...
@@ -116,10 +117,10 @@ def reader_creator(data_file,
file
=
file
.
strip
()
batch
=
None
with
open
(
file
,
'r'
)
as
f
:
batch
=
cP
ickle
.
load
(
f
)
batch
=
p
ickle
.
load
(
f
)
data
=
batch
[
'data'
]
labels
=
batch
[
'label'
]
for
sample
,
label
in
itertools
.
i
zip
(
data
,
batch
[
'label'
]):
for
sample
,
label
in
zip
(
data
,
batch
[
'label'
]):
yield
sample
,
int
(
label
)
-
1
if
not
cycle
:
break
...
...
python/paddle/dataset/image.py
浏览文件 @
29fac3c0
...
...
@@ -36,7 +36,7 @@ except ImportError:
cv2
=
None
import
os
import
tarfile
import
cP
ickle
import
six.moves.cPickle
as
p
ickle
__all__
=
[
"load_image_bytes"
,
"load_image"
,
"resize_short"
,
"to_chw"
,
"center_crop"
,
...
...
@@ -86,10 +86,10 @@ def batch_images_from_tar(data_file,
output
=
{}
output
[
'label'
]
=
labels
output
[
'data'
]
=
data
cP
ickle
.
dump
(
p
ickle
.
dump
(
output
,
open
(
'%s/batch_%d'
%
(
out_path
,
file_id
),
'w'
),
protocol
=
cP
ickle
.
HIGHEST_PROTOCOL
)
protocol
=
p
ickle
.
HIGHEST_PROTOCOL
)
file_id
+=
1
data
=
[]
labels
=
[]
...
...
@@ -97,10 +97,10 @@ def batch_images_from_tar(data_file,
output
=
{}
output
[
'label'
]
=
labels
output
[
'data'
]
=
data
cP
ickle
.
dump
(
p
ickle
.
dump
(
output
,
open
(
'%s/batch_%d'
%
(
out_path
,
file_id
),
'w'
),
protocol
=
cP
ickle
.
HIGHEST_PROTOCOL
)
protocol
=
p
ickle
.
HIGHEST_PROTOCOL
)
with
open
(
meta_file
,
'a'
)
as
meta
:
for
file
in
os
.
listdir
(
out_path
):
...
...
python/paddle/dataset/imdb.py
浏览文件 @
29fac3c0
...
...
@@ -42,13 +42,13 @@ def tokenize(pattern):
# sequential access of member files, other than
# tarfile.extractfile, which does random access and might
# destroy hard disks.
tf
=
tarf
.
next
(
)
tf
=
next
(
tarf
)
while
tf
!=
None
:
if
bool
(
pattern
.
match
(
tf
.
name
)):
# newline and punctuations removal and ad-hoc tokenization.
yield
tarf
.
extractfile
(
tf
).
read
().
rstrip
(
"
\n\r
"
).
translate
(
None
,
string
.
punctuation
).
lower
().
split
()
tf
=
tarf
.
next
(
)
tf
=
next
(
tarf
)
def
build_dict
(
pattern
,
cutoff
):
...
...
@@ -62,11 +62,11 @@ def build_dict(pattern, cutoff):
word_freq
[
word
]
+=
1
# Not sure if we should prune less-frequent words here.
word_freq
=
filter
(
lambda
x
:
x
[
1
]
>
cutoff
,
word_freq
.
items
())
word_freq
=
[
x
for
x
in
list
(
word_freq
.
items
())
if
x
[
1
]
>
cutoff
]
dictionary
=
sorted
(
word_freq
,
key
=
lambda
x
:
(
-
x
[
1
],
x
[
0
]))
words
,
_
=
list
(
zip
(
*
dictionary
))
word_idx
=
dict
(
zip
(
words
,
xrange
(
len
(
words
))))
word_idx
=
dict
(
list
(
zip
(
words
,
list
(
range
(
len
(
words
))
))))
word_idx
[
'<unk>'
]
=
len
(
words
)
return
word_idx
...
...
python/paddle/dataset/imikolov.py
浏览文件 @
29fac3c0
...
...
@@ -64,11 +64,11 @@ def build_dict(min_word_freq=50):
# remove <unk> for now, since we will set it as last index
del
word_freq
[
'<unk>'
]
word_freq
=
filter
(
lambda
x
:
x
[
1
]
>
min_word_freq
,
word_freq
.
items
())
word_freq
=
[
x
for
x
in
list
(
word_freq
.
items
())
if
x
[
1
]
>
min_word_freq
]
word_freq_sorted
=
sorted
(
word_freq
,
key
=
lambda
x
:
(
-
x
[
1
],
x
[
0
]))
words
,
_
=
list
(
zip
(
*
word_freq_sorted
))
word_idx
=
dict
(
zip
(
words
,
xrange
(
len
(
words
))))
word_idx
=
dict
(
list
(
zip
(
words
,
list
(
range
(
len
(
words
))
))))
word_idx
[
'<unk>'
]
=
len
(
words
)
return
word_idx
...
...
python/paddle/dataset/mnist.py
浏览文件 @
29fac3c0
...
...
@@ -65,7 +65,7 @@ def reader_creator(image_filename, label_filename, buffer_size):
images
=
images
/
255.0
*
2.0
-
1.0
for
i
in
x
range
(
buffer_size
):
for
i
in
range
(
buffer_size
):
yield
images
[
i
,
:],
int
(
labels
[
i
])
finally
:
try
:
...
...
python/paddle/dataset/movielens.py
浏览文件 @
29fac3c0
...
...
@@ -187,7 +187,7 @@ def max_movie_id():
Get the maximum value of movie id.
"""
__initialize_meta_info__
()
return
reduce
(
__max_index_info__
,
MOVIE_INFO
.
viewvalues
(
)).
index
return
reduce
(
__max_index_info__
,
list
(
MOVIE_INFO
.
values
()
)).
index
def
max_user_id
():
...
...
@@ -195,7 +195,7 @@ def max_user_id():
Get the maximum value of user id.
"""
__initialize_meta_info__
()
return
reduce
(
__max_index_info__
,
USER_INFO
.
viewvalues
(
)).
index
return
reduce
(
__max_index_info__
,
list
(
USER_INFO
.
values
()
)).
index
def
__max_job_id_impl__
(
a
,
b
):
...
...
@@ -210,7 +210,7 @@ def max_job_id():
Get the maximum value of job id.
"""
__initialize_meta_info__
()
return
reduce
(
__max_job_id_impl__
,
USER_INFO
.
viewvalues
(
)).
job_id
return
reduce
(
__max_job_id_impl__
,
list
(
USER_INFO
.
values
()
)).
job_id
def
movie_categories
():
...
...
@@ -243,7 +243,7 @@ def unittest():
for
test_count
,
_
in
enumerate
(
test
()()):
pass
print
train_count
,
test_count
print
(
train_count
,
test_count
)
def
fetch
():
...
...
python/paddle/dataset/mq2007.py
浏览文件 @
29fac3c0
...
...
@@ -26,7 +26,7 @@ http://research.microsoft.com/en-us/um/beijing/projects/letor/LETOR4.0/Data/MQ20
import
os
import
functools
import
rarfile
from
common
import
download
from
.
common
import
download
import
numpy
as
np
# URL = "http://research.microsoft.com/en-us/um/beijing/projects/letor/LETOR4.0/Data/MQ2007.rar"
...
...
@@ -330,4 +330,4 @@ if __name__ == "__main__":
mytest
=
functools
.
partial
(
__reader__
,
filepath
=
"MQ2007/MQ2007/Fold1/sample"
,
format
=
"listwise"
)
for
label
,
query
in
mytest
():
print
label
,
query
print
(
label
,
query
)
python/paddle/dataset/sentiment.py
浏览文件 @
29fac3c0
...
...
@@ -43,11 +43,11 @@ def download_data_if_not_yet():
nltk
.
data
.
path
.
append
(
paddle
.
dataset
.
common
.
DATA_HOME
)
movie_reviews
.
categories
()
except
LookupError
:
print
"Downloading movie_reviews data set, please wait....."
print
(
"Downloading movie_reviews data set, please wait....."
)
nltk
.
download
(
'movie_reviews'
,
download_dir
=
paddle
.
dataset
.
common
.
DATA_HOME
)
print
"Download data set success....."
print
"Path is "
+
nltk
.
data
.
find
(
'corpora/movie_reviews'
).
path
print
(
"Download data set success....."
)
print
(
"Path is "
+
nltk
.
data
.
find
(
'corpora/movie_reviews'
).
path
)
def
get_word_dict
():
...
...
@@ -64,7 +64,7 @@ def get_word_dict():
for
field
in
movie_reviews
.
fileids
(
category
):
for
words
in
movie_reviews
.
words
(
field
):
word_freq_dict
[
words
]
+=
1
words_sort_list
=
word_freq_dict
.
items
(
)
words_sort_list
=
list
(
word_freq_dict
.
items
()
)
words_sort_list
.
sort
(
cmp
=
lambda
a
,
b
:
b
[
1
]
-
a
[
1
])
for
index
,
word
in
enumerate
(
words_sort_list
):
words_freq_sorted
.
append
((
word
[
0
],
index
))
...
...
@@ -80,7 +80,8 @@ def sort_files():
files_list
=
list
()
neg_file_list
=
movie_reviews
.
fileids
(
'neg'
)
pos_file_list
=
movie_reviews
.
fileids
(
'pos'
)
files_list
=
list
(
chain
.
from_iterable
(
zip
(
neg_file_list
,
pos_file_list
)))
files_list
=
list
(
chain
.
from_iterable
(
list
(
zip
(
neg_file_list
,
pos_file_list
))))
return
files_list
...
...
python/paddle/dataset/tests/common_test.py
浏览文件 @
29fac3c0
...
...
@@ -36,7 +36,7 @@ class TestCommon(unittest.TestCase):
def
test_split
(
self
):
def
test_reader
():
def
reader
():
for
x
in
x
range
(
10
):
for
x
in
range
(
10
):
yield
x
return
reader
...
...
@@ -49,7 +49,7 @@ class TestCommon(unittest.TestCase):
def
test_cluster_file_reader
(
self
):
_
,
temp_path
=
tempfile
.
mkstemp
()
for
x
in
x
range
(
5
):
for
x
in
range
(
5
):
with
open
(
temp_path
+
'/%05d.test'
%
x
)
as
f
:
f
.
write
(
'%d
\n
'
%
x
)
reader
=
paddle
.
dataset
.
common
.
cluster_files_reader
(
...
...
@@ -63,7 +63,7 @@ class TestCommon(unittest.TestCase):
def
test_reader
():
def
reader
():
for
x
in
x
range
(
record_num
):
for
x
in
range
(
record_num
):
yield
x
return
reader
...
...
python/paddle/dataset/tests/imikolov_test.py
浏览文件 @
29fac3c0
...
...
@@ -59,7 +59,7 @@ class TestMikolov(unittest.TestCase):
self
.
assertEqual
(
first_line
,
read_line
)
def
test_total
(
self
):
_
,
idx
=
zip
(
*
WORD_DICT
.
items
(
))
_
,
idx
=
list
(
zip
(
*
list
(
WORD_DICT
.
items
())
))
self
.
assertEqual
(
sorted
(
idx
)[
-
1
],
len
(
WORD_DICT
)
-
1
)
...
...
python/paddle/dataset/tests/test_sentiment.py
浏览文件 @
29fac3c0
...
...
@@ -24,9 +24,8 @@ from nltk.corpus import movie_reviews
class
TestSentimentMethods
(
unittest
.
TestCase
):
def
test_get_word_dict
(
self
):
word_dict
=
st
.
get_word_dict
()[
0
:
10
]
test_word_list
=
[(
u
','
,
0
),
(
u
'the'
,
1
),
(
u
'.'
,
2
),
(
u
'a'
,
3
),
(
u
'and'
,
4
),
(
u
'of'
,
5
),
(
u
'to'
,
6
),
(
u
"'"
,
7
),
(
u
'is'
,
8
),
(
u
'in'
,
9
)]
test_word_list
=
[(
','
,
0
),
(
'the'
,
1
),
(
'.'
,
2
),
(
'a'
,
3
),
(
'and'
,
4
),
(
'of'
,
5
),
(
'to'
,
6
),
(
"'"
,
7
),
(
'is'
,
8
),
(
'in'
,
9
)]
for
idx
,
each
in
enumerate
(
word_dict
):
self
.
assertEqual
(
each
,
test_word_list
[
idx
])
self
.
assertTrue
(
"/root/.cache/paddle/dataset"
in
nltk
.
data
.
path
)
...
...
python/paddle/dataset/uci_housing.py
浏览文件 @
29fac3c0
...
...
@@ -49,9 +49,12 @@ def feature_range(maximums, minimums):
import
matplotlib.pyplot
as
plt
fig
,
ax
=
plt
.
subplots
()
feature_num
=
len
(
maximums
)
ax
.
bar
(
range
(
feature_num
),
maximums
-
minimums
,
color
=
'r'
,
align
=
'center'
)
ax
.
bar
(
list
(
range
(
feature_num
)),
maximums
-
minimums
,
color
=
'r'
,
align
=
'center'
)
ax
.
set_title
(
'feature scale'
)
plt
.
xticks
(
range
(
feature_num
),
feature_names
)
plt
.
xticks
(
list
(
range
(
feature_num
)
),
feature_names
)
plt
.
xlim
([
-
1
,
feature_num
])
fig
.
set_figheight
(
6
)
fig
.
set_figwidth
(
10
)
...
...
@@ -71,7 +74,7 @@ def load_data(filename, feature_num=14, ratio=0.8):
maximums
,
minimums
,
avgs
=
data
.
max
(
axis
=
0
),
data
.
min
(
axis
=
0
),
data
.
sum
(
axis
=
0
)
/
data
.
shape
[
0
]
feature_range
(
maximums
[:
-
1
],
minimums
[:
-
1
])
for
i
in
x
range
(
feature_num
-
1
):
for
i
in
range
(
feature_num
-
1
):
data
[:,
i
]
=
(
data
[:,
i
]
-
avgs
[
i
])
/
(
maximums
[
i
]
-
minimums
[
i
])
offset
=
int
(
data
.
shape
[
0
]
*
ratio
)
UCI_TRAIN_DATA
=
data
[:
offset
]
...
...
python/paddle/dataset/wmt14.py
浏览文件 @
29fac3c0
...
...
@@ -154,8 +154,8 @@ def get_dict(dict_size, reverse=True):
tar_file
=
paddle
.
dataset
.
common
.
download
(
URL_TRAIN
,
'wmt14'
,
MD5_TRAIN
)
src_dict
,
trg_dict
=
__read_to_dict
(
tar_file
,
dict_size
)
if
reverse
:
src_dict
=
{
v
:
k
for
k
,
v
in
src_dict
.
items
(
)}
trg_dict
=
{
v
:
k
for
k
,
v
in
trg_dict
.
items
(
)}
src_dict
=
{
v
:
k
for
k
,
v
in
list
(
src_dict
.
items
()
)}
trg_dict
=
{
v
:
k
for
k
,
v
in
list
(
trg_dict
.
items
()
)}
return
src_dict
,
trg_dict
...
...
python/paddle/dataset/wmt16.py
浏览文件 @
29fac3c0
...
...
@@ -70,7 +70,9 @@ def __build_dict(tar_file, dict_size, save_path, lang):
fout
.
write
(
"%s
\n
%s
\n
%s
\n
"
%
(
START_MARK
,
END_MARK
,
UNK_MARK
))
for
idx
,
word
in
enumerate
(
sorted
(
word_dict
.
iteritems
(),
key
=
lambda
x
:
x
[
1
],
reverse
=
True
)):
iter
(
list
(
word_dict
.
items
())),
key
=
lambda
x
:
x
[
1
],
reverse
=
True
)):
if
idx
+
3
==
dict_size
:
break
fout
.
write
(
"%s
\n
"
%
(
word
[
0
]))
...
...
python/paddle/fluid/__init__.py
浏览文件 @
29fac3c0
...
...
@@ -14,49 +14,49 @@
from
__future__
import
print_function
# import all class inside framework into fluid module
import
framework
from
framework
import
*
from
.
import
framework
from
.
framework
import
*
# import all class inside executor into fluid module
import
executor
from
executor
import
*
import
trainer
from
trainer
import
Trainer
from
trainer
import
BeginEpochEvent
from
trainer
import
EndEpochEvent
from
trainer
import
BeginStepEvent
from
trainer
import
EndStepEvent
from
trainer
import
CheckpointConfig
import
inferencer
from
inferencer
import
Inferencer
import
io
import
evaluator
import
initializer
import
layers
import
contrib
import
nets
import
optimizer
import
backward
import
regularizer
import
average
import
metrics
import
transpiler
from
param_attr
import
ParamAttr
,
WeightNormParamAttr
from
data_feeder
import
DataFeeder
from
core
import
LoDTensor
,
LoDTensorArray
,
CPUPlace
,
CUDAPlace
,
CUDAPinnedPlace
,
Scope
from
transpiler
import
DistributeTranspiler
,
InferenceTranspiler
,
\
from
.
import
executor
from
.
executor
import
*
from
.
import
trainer
from
.
trainer
import
Trainer
from
.
trainer
import
BeginEpochEvent
from
.
trainer
import
EndEpochEvent
from
.
trainer
import
BeginStepEvent
from
.
trainer
import
EndStepEvent
from
.
trainer
import
CheckpointConfig
from
.
import
inferencer
from
.
inferencer
import
Inferencer
from
.
import
io
from
.
import
evaluator
from
.
import
initializer
from
.
import
layers
from
.
import
contrib
from
.
import
nets
from
.
import
optimizer
from
.
import
backward
from
.
import
regularizer
from
.
import
average
from
.
import
metrics
from
.
import
transpiler
from
.
param_attr
import
ParamAttr
,
WeightNormParamAttr
from
.
data_feeder
import
DataFeeder
from
.
core
import
LoDTensor
,
LoDTensorArray
,
CPUPlace
,
CUDAPlace
,
CUDAPinnedPlace
,
Scope
from
.
transpiler
import
DistributeTranspiler
,
InferenceTranspiler
,
\
memory_optimize
,
release_memory
,
DistributeTranspilerConfig
from
concurrency
import
(
Go
,
make_channel
,
channel_send
,
channel_recv
,
from
.
concurrency
import
(
Go
,
make_channel
,
channel_send
,
channel_recv
,
channel_close
,
Select
)
from
lod_tensor
import
create_lod_tensor
,
create_random_int_lodtensor
import
clip
import
profiler
import
unique_name
import
recordio_writer
import
parallel_executor
from
parallel_executor
import
*
from
.
lod_tensor
import
create_lod_tensor
,
create_random_int_lodtensor
from
.
import
clip
from
.
import
profiler
from
.
import
unique_name
from
.
import
recordio_writer
from
.
import
parallel_executor
from
.
parallel_executor
import
*
from
paddle.fluid.layers.math_op_patch
import
monkey_patch_variable
Tensor
=
LoDTensor
...
...
@@ -99,8 +99,8 @@ def __bootstrap__():
None
"""
import
sys
import
core
import
os
from
.
import
core
in_test
=
'unittest'
in
sys
.
modules
...
...
python/paddle/fluid/annotations.py
浏览文件 @
29fac3c0
...
...
@@ -12,6 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
functools
import
sys
...
...
@@ -28,7 +29,7 @@ def deprecated(since, instead, extra_message=""):
@
functools
.
wraps
(
func
)
def
wrapper
(
*
args
,
**
kwargs
):
print
>>
sys
.
stderr
,
err_msg
print
(
err_msg
,
file
=
sys
.
stderr
)
return
func
(
*
args
,
**
kwargs
)
wrapper
.
__doc__
+=
"
\n
"
...
...
python/paddle/fluid/backward.py
浏览文件 @
29fac3c0
...
...
@@ -16,7 +16,8 @@ from paddle.fluid import framework as framework
from
.
import
core
import
collections
import
copy
import
unique_name
import
six
from
.
import
unique_name
__all__
=
[
'append_backward'
]
...
...
@@ -44,17 +45,25 @@ def _create_op_desc_(op_type, inputs, outputs, attrs):
"""
op_desc
=
core
.
OpDesc
()
op_desc
.
set_type
(
op_type
)
for
para
,
args
in
inputs
.
iteritems
():
op_desc
.
set_input
(
para
,
args
)
for
para
,
args
in
outputs
.
iteritems
():
op_desc
.
set_output
(
para
,
args
)
for
para
,
args
in
list
(
inputs
.
items
()):
op_desc
.
set_input
(
para
,
list
(
map
(
lambda
arg
:
arg
.
decode
()
if
isinstance
(
arg
,
six
.
binary_type
)
else
arg
,
args
)))
for
para
,
args
in
list
(
outputs
.
items
()):
op_desc
.
set_output
(
para
,
list
(
map
(
lambda
arg
:
arg
.
decode
()
if
isinstance
(
arg
,
six
.
binary_type
)
else
arg
,
args
)))
op_role_attr_name
=
core
.
op_proto_and_checker_maker
.
kOpRoleAttrName
()
if
op_role_attr_name
not
in
attrs
:
attrs
[
op_role_attr_name
]
=
core
.
op_proto_and_checker_maker
.
OpRole
.
Backward
for
name
,
val
in
attrs
.
iteritems
(
):
for
name
,
val
in
list
(
attrs
.
items
()
):
if
isinstance
(
val
,
framework
.
Block
):
op_desc
.
set_block_attr
(
name
,
val
.
desc
)
else
:
...
...
@@ -105,7 +114,9 @@ def _strip_grad_suffix_(name):
e.g. x@GRAD ==> x
y@GRAD@RENAME@1 ==> y
"""
pos
=
name
.
find
(
core
.
grad_var_suffix
())
if
isinstance
(
name
,
six
.
text_type
):
name
=
name
.
encode
()
pos
=
name
.
find
(
six
.
b
(
core
.
grad_var_suffix
()))
return
name
[:
pos
]
if
pos
!=
-
1
else
name
...
...
@@ -114,7 +125,9 @@ def _append_grad_suffix_(name):
Append grad suffix to the given variable name
e.g. x ==> x@GRAD
"""
return
name
+
core
.
grad_var_suffix
()
if
isinstance
(
name
,
six
.
text_type
):
name
=
name
.
encode
()
return
name
+
six
.
b
(
core
.
grad_var_suffix
())
def
_addup_repetitive_outputs_
(
op_descs
):
...
...
@@ -174,7 +187,7 @@ def _addup_repetitive_outputs_(op_descs):
op_desc
.
set_output
(
param_name
,
arg_names
)
renamed_vars
[
var_name
].
append
(
new_name
)
for
var_name
,
inputs
in
renamed_vars
.
iteritems
(
):
for
var_name
,
inputs
in
list
(
renamed_vars
.
items
()
):
if
len
(
inputs
)
>
1
:
pending_sum_ops
.
append
(
(
_create_op_desc_
(
"sum"
,
{
"X"
:
inputs
},
{
"Out"
:
[
var_name
]},
...
...
@@ -198,16 +211,19 @@ def _remove_no_grad_branch_(op_descs, no_grad_set):
out_arg_names
=
op_desc
.
output_arg_names
()
if
len
(
out_arg_names
)
==
0
or
_all_in_set_
(
out_arg_names
,
no_grad_set
):
return
True
if
_all_in_set_
(
filter
(
lambda
name
:
name
.
find
(
core
.
grad_var_suffix
())
!=
-
1
,
op_desc
.
input_arg_names
()),
no_grad_set
):
if
_all_in_set_
([
name
for
name
in
op_desc
.
input_arg_names
()
if
name
.
find
(
core
.
grad_var_suffix
())
!=
-
1
],
no_grad_set
):
no_grad_set
.
update
(
out_arg_names
)
return
True
return
False
# Remove ops whose outputs are all in no_grad_dict
op_descs
=
filter
(
lambda
op_desc
:
not
_op_can_be_removed_
(
op_desc
,
no_grad_set
),
op_descs
)
op_descs
=
[
op_desc
for
op_desc
in
op_descs
if
not
_op_can_be_removed_
(
op_desc
,
no_grad_set
)
]
# Insert fill_zeros_like_op
to_insert
=
[]
for
idx
,
op_desc
in
enumerate
(
op_descs
):
...
...
@@ -217,12 +233,12 @@ def _remove_no_grad_branch_(op_descs, no_grad_set):
"X"
:
[
_strip_grad_suffix_
(
arg
)]
},
{
"Out"
:
[
arg
]},
{}),
idx
))
map
(
lambda
p
:
op_descs
.
insert
(
p
[
1
],
p
[
0
]),
reversed
(
to_insert
)
)
list
([
op_descs
.
insert
(
p
[
1
],
p
[
0
])
for
p
in
reversed
(
to_insert
)]
)
return
op_descs
import
proto.framework_pb2
as
framework_pb2
from
.proto
import
framework_pb2
def
serialize_op_decs
(
op_desc
):
...
...
@@ -244,8 +260,10 @@ def _callback_lookup_(op):
if
op
.
type
==
'parallel_do'
and
op
.
attr
(
'use_nccl'
):
all_vars
=
op
.
block
.
vars
param_names
=
set
(
op
.
input
(
'parameters'
))
param_names
=
filter
(
lambda
name
:
all_vars
[
name
].
stop_gradient
is
False
,
param_names
)
param_names
=
[
name
for
name
in
param_names
if
all_vars
[
name
].
stop_gradient
is
False
]
param_grad_names
=
[
n
+
"@GRAD"
for
n
in
param_names
]
class
ParallelDoCallBack
(
object
):
...
...
@@ -399,7 +417,7 @@ def _append_backward_vars_(block, start_op_idx, grad_to_var, grad_info_map):
continue
block
.
desc
.
var
(
grad_var_name
)
new_vars
.
add
(
grad_var_name
)
if
not
grad_to_var
.
has_key
(
grad_var_name
)
:
if
grad_var_name
not
in
grad_to_var
:
continue
grad_info_map
[
grad_to_var
[
grad_var_name
]]
=
(
grad_var_name
,
block
)
# infer_shape and infer_type
...
...
@@ -427,7 +445,7 @@ def _rename_grad_(block, start_op_idx, grad_to_var, target_grad_map):
op_desc
.
rename_output
(
name
,
new_name
)
var_map
[
name
]
=
new_name
for
g
,
ng
in
var_map
.
iteritems
(
):
for
g
,
ng
in
list
(
var_map
.
items
()
):
if
g
in
grad_to_var
:
grad_to_var
[
ng
]
=
grad_to_var
[
g
]
grad_to_var
.
pop
(
g
)
...
...
@@ -439,7 +457,7 @@ def _get_stop_gradients_(program):
for
block
in
program
.
blocks
:
assert
isinstance
(
block
,
framework
.
Block
)
block_no_grad_set
=
set
()
for
var
in
block
.
vars
.
itervalues
(
):
for
var
in
list
(
block
.
vars
.
values
()
):
assert
isinstance
(
var
,
framework
.
Variable
)
if
var
.
stop_gradient
:
block_no_grad_set
.
add
(
_append_grad_suffix_
(
var
.
name
))
...
...
@@ -535,7 +553,7 @@ def append_backward(loss, parameter_list=None, no_grad_set=None,
no_grad_set
=
set
()
no_grad_set
=
copy
.
copy
(
no_grad_set
)
no_grad_dict
=
_get_stop_gradients_
(
program
)
no_grad_dict
[
0
].
update
(
map
(
_append_grad_suffix_
,
no_grad_set
))
no_grad_dict
[
0
].
update
(
list
(
map
(
_append_grad_suffix_
,
no_grad_set
)
))
grad_info_map
=
dict
()
root_block
=
program
.
block
(
0
)
...
...
@@ -558,7 +576,7 @@ def append_backward(loss, parameter_list=None, no_grad_set=None,
block_no_grad_set
=
set
(
map
(
_strip_grad_suffix_
,
no_grad_dict
[
0
]))
op_path
=
_find_op_path_
(
root_block
,
[
loss
],
[],
block_no_grad_set
)
no_grad_dict
[
0
].
update
(
map
(
_append_grad_suffix_
,
block_no_grad_set
))
no_grad_dict
[
0
].
update
(
list
(
map
(
_append_grad_suffix_
,
block_no_grad_set
)
))
_append_backward_ops_
(
root_block
,
op_path
,
root_block
,
no_grad_dict
,
grad_to_var
,
callbacks
)
...
...
@@ -697,7 +715,7 @@ def calc_gradient(targets, inputs, target_gradients=None, no_grad_set=None):
no_grad_set
=
set
()
no_grad_set
=
copy
.
copy
(
no_grad_set
)
no_grad_dict
=
_get_stop_gradients_
(
prog
)
no_grad_dict
[
0
].
update
(
map
(
_append_grad_suffix_
,
no_grad_set
))
no_grad_dict
[
0
].
update
(
list
(
map
(
_append_grad_suffix_
,
no_grad_set
)
))
fwd_op_num
=
block
.
desc
.
op_size
()
...
...
@@ -731,7 +749,7 @@ def calc_gradient(targets, inputs, target_gradients=None, no_grad_set=None):
block_no_grad_set
=
set
(
map
(
_strip_grad_suffix_
,
no_grad_dict
[
0
]))
op_path
=
_find_op_path_
(
block
,
targets
,
inputs
,
block_no_grad_set
)
no_grad_dict
[
0
].
update
(
map
(
_append_grad_suffix_
,
block_no_grad_set
))
no_grad_dict
[
0
].
update
(
list
(
map
(
_append_grad_suffix_
,
block_no_grad_set
)
))
grad_to_var
=
dict
()
grad_info_map
=
dict
()
_append_backward_ops_
(
block
,
op_path
,
block
,
no_grad_dict
,
grad_to_var
)
...
...
python/paddle/fluid/clip.py
浏览文件 @
29fac3c0
...
...
@@ -13,10 +13,11 @@
# limitations under the License.
import
copy
import
six
import
functools
import
layers
import
framework
from
.
import
layers
from
.
import
framework
from
.
import
core
__all__
=
[
...
...
@@ -80,8 +81,7 @@ def error_clip_callback(block, context):
# the context is a grad_to_var map
grad_to_var
=
context
op_desc
=
block
.
desc
.
op
(
block
.
desc
.
op_size
()
-
1
)
for
grad_n
in
filter
(
lambda
n
:
grad_to_var
.
has_key
(
n
),
op_desc
.
output_arg_names
()):
for
grad_n
in
[
n
for
n
in
op_desc
.
output_arg_names
()
if
n
in
grad_to_var
]:
fwd_var
=
block
.
_var_recursive
(
grad_to_var
[
grad_n
])
error_clip
=
getattr
(
fwd_var
,
"error_clip"
,
None
)
if
not
(
error_clip
is
None
or
isinstance
(
error_clip
,
...
...
@@ -247,8 +247,8 @@ class GradientClipByGlobalNorm(BaseGradientClipAttr):
"""
def
__init__
(
self
,
clip_norm
,
group_name
=
"default_group"
):
if
not
isinstance
(
group_name
,
basestring
):
raise
TypeError
(
"'group_name' must be a
basestring."
)
if
not
isinstance
(
group_name
,
six
.
string_types
):
raise
TypeError
(
"'group_name' must be a
%s."
%
(
six
.
string_types
)
)
self
.
clip_norm
=
clip_norm
self
.
group_name
=
group_name
...
...
@@ -284,7 +284,7 @@ class GradientClipByGlobalNorm(BaseGradientClipAttr):
x
=
clip_var
,
y
=
layers
.
elementwise_max
(
x
=
clip_var
,
y
=
group_norm_var
))
assert
group_scale_var
.
shape
==
(
1
L
,
)
assert
group_scale_var
.
shape
==
(
1
,
)
self
.
context
[
group_scale_name
]
=
group_scale_var
new_grad
=
layers
.
elementwise_mul
(
...
...
@@ -313,7 +313,7 @@ def set_gradient_clip(clip, param_list=None, program=None):
program
=
framework
.
default_main_program
()
if
param_list
is
None
:
param_list
=
program
.
block
(
0
).
all_parameters
()
if
all
(
isinstance
(
elem
,
basestring
)
for
elem
in
param_list
):
if
all
(
isinstance
(
elem
,
six
.
string_types
)
for
elem
in
param_list
):
param_list
=
[
program
.
block
(
0
).
var
(
elem
)
for
elem
in
param_list
]
if
not
all
(
isinstance
(
elem
,
framework
.
Parameter
)
for
elem
in
param_list
):
raise
TypeError
(
...
...
python/paddle/fluid/concurrency.py
浏览文件 @
29fac3c0
...
...
@@ -12,11 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
layers.control_flow
import
BlockGuard
,
equal
from
.
layers.control_flow
import
BlockGuard
,
equal
from
.framework
import
Operator
from
layer_helper
import
LayerHelper
,
unique_name
from
layers
import
fill_constant
import
core
from
.
layer_helper
import
LayerHelper
,
unique_name
from
.
layers
import
fill_constant
from
.
import
core
__all__
=
[
'Go'
,
'make_channel'
,
'channel_send'
,
'channel_recv'
,
'channel_close'
,
...
...
python/paddle/fluid/contrib/__init__.py
浏览文件 @
29fac3c0
...
...
@@ -12,9 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import
decoder
from
decoder
import
*
import
memory_usage_calc
from
memory_usage_calc
import
*
from
.
import
decoder
from
.
decoder
import
*
from
.
import
memory_usage_calc
from
.
memory_usage_calc
import
*
__all__
=
decoder
.
__all__
+
memory_usage_calc
.
__all__
python/paddle/fluid/contrib/decoder/__init__.py
浏览文件 @
29fac3c0
...
...
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import
beam_search_decoder
from
beam_search_decoder
import
*
from
.
import
beam_search_decoder
from
.
beam_search_decoder
import
*
__all__
=
beam_search_decoder
.
__all__
python/paddle/fluid/contrib/decoder/beam_search_decoder.py
浏览文件 @
29fac3c0
...
...
@@ -22,6 +22,7 @@ This API is still under active development and may change drastically.
import
contextlib
import
numpy
as
np
import
six
from
...
import
layers
from
...framework
import
Variable
...
...
@@ -191,7 +192,7 @@ class StateCell(object):
self
.
_helper
=
LayerHelper
(
'state_cell'
,
name
=
name
)
self
.
_cur_states
=
{}
self
.
_state_names
=
[]
for
state_name
,
state
in
s
tates
.
items
(
):
for
state_name
,
state
in
s
ix
.
iteritems
(
states
):
if
not
isinstance
(
state
,
InitState
):
raise
ValueError
(
'state must be an InitState object.'
)
self
.
_cur_states
[
state_name
]
=
state
...
...
@@ -346,7 +347,7 @@ class StateCell(object):
if
self
.
_in_decoder
and
not
self
.
_switched_decoder
:
self
.
_switch_decoder
()
for
input_name
,
input_value
in
inputs
.
items
(
):
for
input_name
,
input_value
in
six
.
iteritems
(
inputs
):
if
input_name
not
in
self
.
_inputs
:
raise
ValueError
(
'Unknown input %s. '
'Please make sure %s in input '
...
...
@@ -361,7 +362,7 @@ class StateCell(object):
if
self
.
_in_decoder
and
not
self
.
_switched_decoder
:
self
.
_switched_decoder
()
for
state_name
,
decoder_state
in
s
elf
.
_states_holder
.
items
(
):
for
state_name
,
decoder_state
in
s
ix
.
iteritems
(
self
.
_states_holder
):
if
id
(
self
.
_cur_decoder_obj
)
not
in
decoder_state
:
raise
ValueError
(
'Unknown decoder object, please make sure '
'switch_decoder been invoked.'
)
...
...
@@ -671,7 +672,7 @@ class BeamSearchDecoder(object):
feed_dict
=
{}
update_dict
=
{}
for
init_var_name
,
init_var
in
s
elf
.
_input_var_dict
.
items
(
):
for
init_var_name
,
init_var
in
s
ix
.
iteritems
(
self
.
_input_var_dict
):
if
init_var_name
not
in
self
.
state_cell
.
_inputs
:
raise
ValueError
(
'Variable '
+
init_var_name
+
' not found in StateCell!
\n
'
)
...
...
@@ -721,7 +722,8 @@ class BeamSearchDecoder(object):
self
.
state_cell
.
update_states
()
self
.
update_array
(
prev_ids
,
selected_ids
)
self
.
update_array
(
prev_scores
,
selected_scores
)
for
update_name
,
var_to_update
in
update_dict
.
items
():
for
update_name
,
var_to_update
in
six
.
iteritems
(
update_dict
):
self
.
update_array
(
var_to_update
,
feed_dict
[
update_name
])
def
read_array
(
self
,
init
,
is_ids
=
False
,
is_scores
=
False
):
...
...
python/paddle/fluid/data_feeder.py
浏览文件 @
29fac3c0
...
...
@@ -12,14 +12,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
core
from
.
import
core
import
numpy
import
os
import
six.moves
as
six
import
six
from
six.moves
import
zip
,
range
,
xrange
import
multiprocessing
from
framework
import
Variable
,
default_main_program
from
.
framework
import
Variable
,
default_main_program
__all__
=
[
'DataFeeder'
]
...
...
@@ -53,7 +53,7 @@ class DataToLoDTensorConverter(object):
self
.
data
=
[]
self
.
lod
=
[]
for
i
in
six
.
range
(
lod_level
):
for
i
in
six
.
moves
.
range
(
lod_level
):
self
.
lod
.
append
([])
def
feed
(
self
,
data
):
...
...
@@ -142,7 +142,7 @@ class DataFeeder(object):
if
program
is
None
:
program
=
default_main_program
()
for
each_var
in
feed_list
:
if
isinstance
(
each_var
,
basestring
):
if
isinstance
(
each_var
,
six
.
string_types
):
each_var
=
program
.
block
(
0
).
var
(
each_var
)
if
not
isinstance
(
each_var
,
Variable
):
raise
TypeError
(
"Feed list should contain a list of variable"
)
...
...
@@ -174,7 +174,7 @@ class DataFeeder(object):
dict: the result of conversion.
"""
converter
=
[]
for
lod_level
,
shape
,
dtype
in
six
.
zip
(
for
lod_level
,
shape
,
dtype
in
six
.
moves
.
zip
(
self
.
feed_lod_level
,
self
.
feed_shapes
,
self
.
feed_dtypes
):
converter
.
append
(
DataToLoDTensorConverter
(
...
...
@@ -187,10 +187,12 @@ class DataFeeder(object):
assert
len
(
each_sample
)
==
len
(
converter
),
(
"The number of fields in data (%s) does not match "
+
"len(feed_list) (%s)"
)
%
(
len
(
each_sample
),
len
(
converter
))
for
each_converter
,
each_slot
in
six
.
zip
(
converter
,
each_sample
):
for
each_converter
,
each_slot
in
six
.
moves
.
zip
(
converter
,
each_sample
):
each_converter
.
feed
(
each_slot
)
ret_dict
=
{}
for
each_name
,
each_converter
in
six
.
zip
(
self
.
feed_names
,
converter
):
for
each_name
,
each_converter
in
six
.
moves
.
zip
(
self
.
feed_names
,
converter
):
ret_dict
[
each_name
]
=
each_converter
.
done
()
return
ret_dict
...
...
@@ -212,12 +214,14 @@ class DataFeeder(object):
if
isinstance
(
self
.
place
,
core
.
CUDAPlace
):
places
=
[
core
.
CUDAPlace
(
i
)
for
i
in
six
.
xrange
(
self
.
_get_number_of_places_
(
num_places
))
for
i
in
six
.
moves
.
xrange
(
self
.
_get_number_of_places_
(
num_places
))
]
else
:
places
=
[
core
.
CPUPlace
()
for
_
in
six
.
xrange
(
self
.
_get_number_of_places_
(
num_places
))
for
_
in
six
.
moves
.
xrange
(
self
.
_get_number_of_places_
(
num_places
))
]
if
len
(
iterable
)
!=
len
(
places
):
...
...
@@ -227,7 +231,7 @@ class DataFeeder(object):
"must be same."
)
place
=
self
.
place
for
p
,
batch
in
six
.
zip
(
places
,
iterable
):
for
p
,
batch
in
six
.
moves
.
zip
(
places
,
iterable
):
self
.
place
=
p
yield
self
.
feed
(
batch
)
self
.
place
=
place
...
...
python/paddle/fluid/debugger.py
浏览文件 @
29fac3c0
...
...
@@ -14,8 +14,8 @@
import
sys
import
re
from
graphviz
import
GraphPreviewGenerator
import
proto.framework_pb2
as
framework_pb2
from
.
graphviz
import
GraphPreviewGenerator
from
.proto
import
framework_pb2
from
google.protobuf
import
text_format
_vartype2str_
=
[
...
...
python/paddle/fluid/evaluator.py
浏览文件 @
29fac3c0
...
...
@@ -15,11 +15,11 @@
import
warnings
import
numpy
as
np
import
layers
from
framework
import
Program
,
Variable
,
program_guard
import
unique_name
from
layer_helper
import
LayerHelper
from
initializer
import
Constant
from
.
import
layers
from
.
framework
import
Program
,
Variable
,
program_guard
from
.
import
unique_name
from
.
layer_helper
import
LayerHelper
from
.
initializer
import
Constant
__all__
=
[
'ChunkEvaluator'
,
...
...
python/paddle/fluid/executor.py
浏览文件 @
29fac3c0
...
...
@@ -14,7 +14,8 @@
import
numpy
as
np
import
contextlib
from
framework
import
Program
,
default_main_program
,
Variable
import
six
from
.framework
import
Program
,
default_main_program
,
Variable
from
.
import
core
__all__
=
[
...
...
@@ -204,19 +205,19 @@ def fetch_var(name, scope=None, return_numpy=True):
def
_get_program_cache_key
(
feed
,
fetch_list
):
feed_var_names
=
feed
.
keys
(
)
feed_var_names
=
list
(
feed
.
keys
()
)
def
to_name_str
(
var
):
if
isinstance
(
var
,
Variable
):
return
var
.
desc
.
name
()
elif
isinstance
(
var
,
str
):
return
var
elif
isinstance
(
var
,
basestring
):
elif
isinstance
(
var
,
six
.
string_types
):
return
str
(
var
)
else
:
raise
TypeError
(
str
(
var
)
+
" should be Variable or str"
)
fetch_var_names
=
map
(
to_name_str
,
fetch_list
)
fetch_var_names
=
list
(
map
(
to_name_str
,
fetch_list
)
)
return
str
(
feed_var_names
+
fetch_var_names
)
...
...
@@ -345,7 +346,7 @@ class Executor(object):
def
_fetch_data
(
self
,
fetch_list
,
fetch_var_name
,
scope
):
outs
=
[
core
.
get_fetch_variable
(
scope
,
fetch_var_name
,
i
)
for
i
in
x
range
(
len
(
fetch_list
))
for
i
in
range
(
len
(
fetch_list
))
]
return
outs
...
...
python/paddle/fluid/framework.py
浏览文件 @
29fac3c0
...
...
@@ -15,21 +15,22 @@
import
collections
import
contextlib
import
re
import
six
import
numpy
as
np
import
proto.framework_pb2
as
framework_pb2
from
.proto
import
framework_pb2
try
:
from
.
import
core
except
ImportError
,
e
:
except
ImportError
as
e
:
raise
ImportError
(
"""NOTE: You may need to run
\"
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
\"
if you encounters
\"
libmkldnn.so not found
\"
errors. If you have python
installed in other directory, replace
\"
/usr/local/lib
\"
with your own
directory. The original error is:
\n
"""
+
e
.
message
)
except
Exception
,
e
:
except
Exception
as
e
:
raise
e
import
unique_name
from
.
import
unique_name
__all__
=
[
'Program'
,
...
...
@@ -86,7 +87,7 @@ def convert_np_dtype_to_dtype_(np_dtype):
elif
dtype
==
np
.
uint8
:
return
core
.
VarDesc
.
VarType
.
UINT8
else
:
raise
ValueError
(
"Not supported numpy dtype "
+
s
tr
(
dtype
))
raise
ValueError
(
"Not supported numpy dtype "
+
s
ix
.
binary_type
(
dtype
))
def
dtype_is_floating
(
dtype
):
...
...
@@ -197,6 +198,7 @@ class Variable(object):
if
name
is
None
:
name
=
unique_name
.
generate
(
'_generated_var'
)
is_new_var
=
False
name
=
name
if
isinstance
(
name
,
six
.
binary_type
)
else
name
.
encode
()
self
.
desc
=
self
.
block
.
desc
.
find_var
(
name
)
if
self
.
desc
is
None
:
...
...
@@ -290,13 +292,13 @@ class Variable(object):
assert
isinstance
(
throw_on_error
,
bool
)
and
isinstance
(
with_details
,
bool
)
protostr
=
self
.
desc
.
serialize_to_string
()
proto
=
framework_pb2
.
VarDesc
.
FromString
(
s
tr
(
protostr
))
proto
=
framework_pb2
.
VarDesc
.
FromString
(
s
ix
.
binary_type
(
protostr
))
res_str
=
_debug_string_
(
proto
,
throw_on_error
)
if
with_details
:
additional_attr
=
(
"error_clip"
,
"stop_gradient"
)
for
attr_name
in
additional_attr
:
res_str
+=
"%s: %s
\n
"
%
(
attr_name
,
str
(
getattr
(
self
,
attr_name
)))
res_str
+=
"%s: %s
\n
"
%
(
attr_name
,
six
.
binary_type
(
getattr
(
self
,
attr_name
)))
return
res_str
__repr__
=
__str__
...
...
@@ -369,7 +371,7 @@ def get_all_op_protos():
protostrs
=
core
.
get_all_op_protos
()
ret_values
=
[]
for
pbstr
in
protostrs
:
op_proto
=
framework_pb2
.
OpProto
.
FromString
(
s
tr
(
pbstr
))
op_proto
=
framework_pb2
.
OpProto
.
FromString
(
s
ix
.
binary_type
(
pbstr
))
ret_values
.
append
(
op_proto
)
return
ret_values
...
...
@@ -472,7 +474,6 @@ class Operator(object):
inputs
=
None
,
outputs
=
None
,
attrs
=
None
):
self
.
block
=
block
self
.
desc
=
desc
self
.
attrs
=
attrs
...
...
@@ -523,10 +524,19 @@ class Operator(object):
%
(
in_proto
.
name
,
len
(
in_args
)))
in_arg_names
=
[]
for
arg
in
in_args
:
if
isinstance
(
arg
,
basestring
):
if
isinstance
(
arg
,
six
.
string_types
):
in_arg_names
.
append
(
arg
)
elif
isinstance
(
arg
,
six
.
binary_type
):
in_arg_names
.
append
(
arg
.
decode
())
else
:
if
isinstance
(
arg
.
name
,
six
.
string_types
):
in_arg_names
.
append
(
arg
.
name
)
elif
isinstance
(
arg
.
name
,
six
.
binary_type
):
in_arg_names
.
append
(
arg
.
name
.
decode
())
else
:
raise
TypeError
(
"arguments require unicode, str or bytes, but get %s instead."
%
(
type
(
arg
.
name
)))
self
.
desc
.
set_input
(
in_proto
.
name
,
in_arg_names
)
else
:
self
.
desc
.
set_input
(
in_proto
.
name
,
[])
...
...
@@ -541,8 +551,9 @@ class Operator(object):
if
not
given
==
need
:
raise
ValueError
((
"Incorrect setting for output(s) of "
"operator
\"
%s
\"
. Need: [%s] Given: [%s]"
)
%
(
type
,
", "
.
join
(
str
(
e
)
for
e
in
need
),
", "
.
join
(
str
(
e
)
for
e
in
given
)))
(
type
,
", "
.
join
(
six
.
binary_type
(
e
)
for
e
in
need
),
", "
.
join
(
six
.
binary_type
(
e
)
for
e
in
given
)))
for
out_proto
in
proto
.
outputs
:
out_args
=
outputs
[
out_proto
.
name
]
...
...
@@ -554,7 +565,14 @@ class Operator(object):
(
out_proto
.
name
,
len
(
out_args
)))
out_arg_names
=
[]
for
arg
in
out_args
:
if
isinstance
(
arg
.
name
,
six
.
string_types
):
out_arg_names
.
append
(
arg
.
name
)
elif
isinstance
(
arg
.
name
,
six
.
binary_type
):
out_arg_names
.
append
(
arg
.
name
.
decode
())
else
:
raise
TypeError
(
"arguments require unicode, str or bytes, but get %s instead."
%
(
type
(
arg
.
name
)))
arg
.
op
=
self
self
.
desc
.
set_output
(
out_proto
.
name
,
out_arg_names
)
...
...
@@ -590,7 +608,7 @@ class Operator(object):
"""
protostr
=
self
.
desc
.
serialize_to_string
()
proto
=
framework_pb2
.
OpDesc
.
FromString
(
s
tr
(
protostr
))
proto
=
framework_pb2
.
OpDesc
.
FromString
(
s
ix
.
binary_type
(
protostr
))
return
_debug_string_
(
proto
,
throw_on_error
)
def
__str__
(
self
):
...
...
@@ -845,7 +863,7 @@ class Block(object):
re_add_indent
=
re
.
compile
(
r
"\n(.)"
)
res_str
=
"blocks {
\n
idx: %d
\n
parent_idx: %d"
%
(
self
.
idx
,
self
.
parent_idx
)
for
var
in
self
.
vars
.
itervalues
(
):
for
var
in
list
(
self
.
vars
.
values
()
):
res_str
+=
"
\n
vars {
\n
%s }"
%
re_add_indent
.
sub
(
r
"\n \1"
,
var
.
to_string
(
throw_on_error
,
with_details
))
for
op
in
self
.
ops
:
...
...
@@ -854,7 +872,8 @@ class Block(object):
res_str
+=
"
\n
}"
else
:
protostr
=
self
.
desc
.
serialize_to_string
()
proto
=
framework_pb2
.
BlockDesc
.
FromString
(
str
(
protostr
))
proto
=
framework_pb2
.
BlockDesc
.
FromString
(
six
.
binary_type
(
protostr
))
res_str
=
_debug_string_
(
proto
,
throw_on_error
)
return
res_str
...
...
@@ -898,7 +917,8 @@ class Block(object):
Returns:
Variable: the Variable with the giving name.
"""
if
not
isinstance
(
name
,
basestring
):
if
not
isinstance
(
name
,
six
.
string_types
):
if
not
isinstance
(
name
,
six
.
binary_type
):
raise
TypeError
(
"var require string as parameter, but get %s instead."
%
(
type
(
name
)))
...
...
@@ -949,10 +969,10 @@ class Block(object):
raise
ValueError
(
"Var {0} is not found recursively"
.
format
(
name
))
def
all_parameters
(
self
):
return
list
(
self
.
_
iter_parameters
())
return
list
(
self
.
iter_parameters
())
def
_
iter_parameters
(
self
):
return
(
item
[
1
]
for
item
in
self
.
vars
.
iteritems
(
)
def
iter_parameters
(
self
):
return
(
item
[
1
]
for
item
in
list
(
self
.
vars
.
items
()
)
if
isinstance
(
item
[
1
],
Parameter
))
def
create_var
(
self
,
*
args
,
**
kwargs
):
...
...
@@ -1132,7 +1152,7 @@ class Block(object):
self
.
create_var
(
name
=
var
.
name
(),
desc
=
var
,
type
=
var
.
type
())
# sync variables removed from c++ end
for
var
in
self
.
vars
.
keys
(
):
for
var
in
list
(
self
.
vars
.
keys
()
):
if
not
self
.
desc
.
find_var
(
var
):
self
.
vars
.
pop
(
var
)
...
...
@@ -1204,7 +1224,7 @@ class Block(object):
if
not
isinstance
(
other
,
Block
):
raise
TypeError
(
"_copy_param_info_from should be invoked with Block"
)
for
p
in
other
.
_
iter_parameters
():
for
p
in
other
.
iter_parameters
():
assert
isinstance
(
p
,
Parameter
)
v
=
self
.
vars
.
get
(
p
.
name
,
None
)
if
v
is
None
:
...
...
@@ -1403,7 +1423,8 @@ class Program(object):
res_str
+=
block
.
to_string
(
throw_on_error
,
with_details
)
else
:
protostr
=
self
.
desc
.
serialize_to_string
()
proto
=
framework_pb2
.
ProgramDesc
.
FromString
(
str
(
protostr
))
proto
=
framework_pb2
.
ProgramDesc
.
FromString
(
six
.
binary_type
(
protostr
))
res_str
=
_debug_string_
(
proto
,
throw_on_error
)
return
res_str
...
...
@@ -1501,7 +1522,7 @@ class Program(object):
else
:
p
=
Program
()
p
.
desc
=
core
.
ProgramDesc
(
self
.
desc
)
p
.
blocks
=
[
Block
(
p
,
i
)
for
i
in
x
range
(
self
.
desc
.
num_blocks
())]
p
.
blocks
=
[
Block
(
p
,
i
)
for
i
in
range
(
self
.
desc
.
num_blocks
())]
p
.
_sync_with_cpp
()
p
.
_copy_param_info_from
(
self
)
...
...
@@ -1553,7 +1574,7 @@ class Program(object):
targets_idx
.
append
([
t
.
block
.
idx
,
t
.
idx
])
res
=
Program
()
res
.
desc
=
core
.
prune
(
self
.
desc
,
targets_idx
)
res
.
blocks
=
[
Block
(
res
,
i
)
for
i
in
x
range
(
res
.
desc
.
num_blocks
())]
res
.
blocks
=
[
Block
(
res
,
i
)
for
i
in
range
(
res
.
desc
.
num_blocks
())]
res
.
_sync_with_cpp
()
return
res
...
...
@@ -1594,13 +1615,13 @@ class Program(object):
root_block
.
_remove_var
(
var
.
name
())
# change all `is_test` attributes to True
for
i
in
x
range
(
res
.
desc
.
num_blocks
()):
for
i
in
range
(
res
.
desc
.
num_blocks
()):
block
=
res
.
desc
.
block
(
i
)
for
j
in
x
range
(
block
.
op_size
()):
for
j
in
range
(
block
.
op_size
()):
op
=
block
.
op
(
j
)
if
op
.
has_attr
(
'is_test'
):
op
.
set_attr
(
'is_test'
,
True
)
res
.
blocks
=
[
Block
(
res
,
i
)
for
i
in
x
range
(
res
.
desc
.
num_blocks
())]
res
.
blocks
=
[
Block
(
res
,
i
)
for
i
in
range
(
res
.
desc
.
num_blocks
())]
res
.
_sync_with_cpp
()
return
res
...
...
@@ -1613,14 +1634,14 @@ class Program(object):
and deserialization.
Args:
binary_str(str): The binary prootbuf string.
binary_str
_type
(str): The binary prootbuf string.
Returns:
Program: A deserialized program desc.
"""
p
=
Program
()
p
.
desc
=
core
.
ProgramDesc
(
binary_str
)
p
.
blocks
=
[
Block
(
p
,
i
)
for
i
in
x
range
(
p
.
desc
.
num_blocks
())]
p
.
blocks
=
[
Block
(
p
,
i
)
for
i
in
range
(
p
.
desc
.
num_blocks
())]
p
.
_sync_with_cpp
()
return
p
...
...
@@ -1648,7 +1669,7 @@ class Program(object):
self
.
_seed
=
seed
def
__repr__
(
self
):
return
s
tr
(
self
)
return
s
elf
.
__str__
(
)
def
global_block
(
self
):
"""
...
...
@@ -1759,7 +1780,7 @@ class Program(object):
if
len
(
self
.
blocks
)
!=
len
(
other
.
blocks
):
raise
ValueError
(
"_copy_param_info_from should be invoked with two "
"program, with represent the same topology"
)
for
var
in
other
.
global_block
().
vars
.
itervalues
(
):
for
var
in
list
(
other
.
global_block
().
vars
.
values
()
):
if
var
.
is_data
:
self
.
global_block
().
var
(
var
.
name
).
is_data
=
True
...
...
@@ -1771,7 +1792,7 @@ class Program(object):
iterable: The generator will yield every variable in this program.
"""
for
each_block
in
self
.
blocks
:
for
each_var
in
each_block
.
vars
.
itervalues
(
):
for
each_var
in
list
(
each_block
.
vars
.
values
()
):
yield
each_var
...
...
@@ -1845,8 +1866,8 @@ class Parameter(Variable):
additional_attr
=
(
"trainable"
,
"optimize_attr"
,
"regularizer"
,
"gradient_clip_attr"
,
"do_model_average"
)
for
attr_name
in
additional_attr
:
res_str
+=
"%s: %s
\n
"
%
(
attr_name
,
str
(
getattr
(
self
,
attr_name
)))
res_str
+=
"%s: %s
\n
"
%
(
attr_name
,
six
.
binary_type
(
getattr
(
self
,
attr_name
)))
else
:
res_str
=
Variable
.
to_string
(
self
,
throw_on_error
,
False
)
return
res_str
...
...
python/paddle/fluid/graphviz.py
浏览文件 @
29fac3c0
...
...
@@ -14,12 +14,13 @@
import
os
import
random
import
six
import
subprocess
import
logging
def
crepr
(
v
):
if
type
(
v
)
is
str
or
type
(
v
)
is
unicode
:
if
isinstance
(
v
,
six
.
string_types
)
:
return
'"%s"'
%
v
return
str
(
v
)
...
...
@@ -104,7 +105,7 @@ class Graph(object):
def
_rank_repr
(
self
):
ranks
=
sorted
(
self
.
rank_groups
.
items
(
),
list
(
self
.
rank_groups
.
items
()
),
cmp
=
lambda
a
,
b
:
a
[
1
].
priority
>
b
[
1
].
priority
)
repr
=
[]
for
x
in
ranks
:
...
...
@@ -148,7 +149,7 @@ class Node(object):
name
=
self
.
name
,
label
=
self
.
label
,
extra
=
','
+
','
.
join
(
"%s=%s"
%
(
key
,
crepr
(
value
))
for
key
,
value
in
self
.
attrs
.
items
(
))
for
key
,
value
in
list
(
self
.
attrs
.
items
()
))
if
self
.
attrs
else
""
)
return
reprs
...
...
@@ -172,7 +173,7 @@ class Edge(object):
target
=
self
.
target
.
name
,
extra
=
""
if
not
self
.
attrs
else
"["
+
','
.
join
(
"{}={}"
.
format
(
attr
[
0
],
crepr
(
attr
[
1
]))
for
attr
in
self
.
attrs
.
items
(
))
+
"]"
)
for
attr
in
list
(
self
.
attrs
.
items
()
))
+
"]"
)
return
repr
...
...
python/paddle/fluid/inferencer.py
浏览文件 @
29fac3c0
...
...
@@ -14,14 +14,14 @@
import
contextlib
import
core
import
executor
import
framework
import
io
import
parallel_executor
import
unique_name
from
trainer
import
check_and_get_place
from
.
import
core
from
.
import
executor
from
.
import
framework
from
.
import
io
from
.
import
parallel_executor
from
.
import
unique_name
from
.
trainer
import
check_and_get_place
__all__
=
[
'Inferencer'
,
]
...
...
python/paddle/fluid/initializer.py
浏览文件 @
29fac3c0
...
...
@@ -12,11 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import
framework
from
.
import
framework
import
numpy
as
np
import
contextlib
from
framework
import
convert_np_dtype_to_dtype_
from
core
import
VarDesc
from
.
framework
import
convert_np_dtype_to_dtype_
from
.
core
import
VarDesc
__all__
=
[
'Constant'
,
'Uniform'
,
'Normal'
,
'Xavier'
,
'Bilinear'
,
'MSRA'
,
...
...
python/paddle/fluid/io.py
浏览文件 @
29fac3c0
...
...
@@ -16,6 +16,7 @@ import os
import
errno
import
time
import
shutil
import
six
from
paddle.fluid.evaluator
import
Evaluator
from
paddle.fluid.framework
import
Program
,
Parameter
,
default_main_program
,
default_startup_program
,
Variable
...
...
@@ -163,7 +164,7 @@ def save_vars(executor,
save_vars
(
executor
,
dirname
=
dirname
,
vars
=
filter
(
predicate
,
main_program
.
list_vars
(
)),
vars
=
list
(
filter
(
predicate
,
main_program
.
list_vars
()
)),
filename
=
filename
)
else
:
save_program
=
Program
()
...
...
@@ -369,7 +370,7 @@ def load_vars(executor,
load_vars
(
executor
,
dirname
=
dirname
,
vars
=
filter
(
predicate
,
main_program
.
list_vars
(
)),
vars
=
list
(
filter
(
predicate
,
main_program
.
list_vars
()
)),
filename
=
filename
)
else
:
load_prog
=
Program
()
...
...
@@ -599,13 +600,25 @@ def save_inference_model(dirname,
# "./infer_model".
"""
if
isinstance
(
feeded_var_names
,
basestring
):
if
isinstance
(
feeded_var_names
,
six
.
binary_type
):
feeded_var_names
=
[
feeded_var_names
]
elif
isinstance
(
feeded_var_names
,
six
.
text_type
):
feeded_var_names
=
[
feeded_var_names
.
encode
()]
else
:
if
len
(
feeded_var_names
)
>
0
:
# TODO(paddle-dev): polish these code blocks
if
not
(
bool
(
feeded_var_names
)
and
all
(
isinstance
(
name
,
basestring
)
for
name
in
feeded_var_names
)):
raise
ValueError
(
"'feed_var_names' should be a list of str."
)
isinstance
(
name
,
six
.
binary_type
)
for
name
in
feeded_var_names
)):
if
not
(
all
(
isinstance
(
name
,
six
.
text_type
)
for
name
in
feeded_var_names
)):
raise
ValueError
(
"'feed_var_names' should be a list of str."
)
else
:
feeded_var_names
=
[
name
.
encode
()
for
name
in
feeded_var_names
]
if
isinstance
(
target_vars
,
Variable
):
target_vars
=
[
target_vars
]
...
...
python/paddle/fluid/layer_helper.py
浏览文件 @
29fac3c0
...
...
@@ -14,12 +14,14 @@
import
copy
import
itertools
import
six
from
framework
import
Variable
,
Parameter
,
default_main_program
,
default_startup_program
,
dtype_is_floating
import
unique_name
from
.
framework
import
Variable
,
Parameter
,
default_main_program
,
default_startup_program
,
dtype_is_floating
from
.
import
unique_name
from
paddle.fluid.initializer
import
Constant
,
Xavier
from
param_attr
import
ParamAttr
,
WeightNormParamAttr
import
core
from
.param_attr
import
ParamAttr
,
WeightNormParamAttr
from
.
import
core
from
six.moves
import
zip
class
LayerHelper
(
object
):
...
...
@@ -83,7 +85,7 @@ class LayerHelper(object):
raise
ValueError
(
"parameter number mismatch"
)
elif
len
(
param_attr
)
==
1
and
length
!=
1
:
tmp
=
[
None
]
*
length
for
i
in
x
range
(
length
):
for
i
in
range
(
length
):
tmp
[
i
]
=
copy
.
deepcopy
(
param_attr
[
0
])
param_attr
=
tmp
return
param_attr
...
...
@@ -91,7 +93,7 @@ class LayerHelper(object):
def
iter_inputs_and_params
(
self
,
input_param_name
=
'input'
):
inputs
=
self
.
multiple_input
(
input_param_name
)
param_attrs
=
self
.
multiple_param_attr
(
len
(
inputs
))
for
ipt
,
param_attr
in
itertools
.
i
zip
(
inputs
,
param_attrs
):
for
ipt
,
param_attr
in
zip
(
inputs
,
param_attrs
):
yield
ipt
,
param_attr
def
input_dtype
(
self
,
input_param_name
=
'input'
):
...
...
@@ -218,7 +220,7 @@ class LayerHelper(object):
norm
=
__norm_op
(
reshape
,
dim
=
0
,
block
=
block
)
__reshape_op
(
norm
,
out
=
out
,
shape
=
out_shape
,
block
=
block
)
else
:
perm
=
range
(
len
(
x
.
shape
))
perm
=
list
(
range
(
len
(
x
.
shape
)
))
perm
[
0
],
perm
[
dim
]
=
dim
,
0
transpose
=
__transpose_op
(
x
,
perm
,
block
=
block
)
norm
=
__norm_op
(
transpose
,
dim
=
0
,
block
=
block
)
...
...
@@ -397,8 +399,10 @@ class LayerHelper(object):
act
=
self
.
kwargs
.
get
(
'act'
,
None
)
if
act
is
None
:
return
input_var
if
isinstance
(
act
,
basestring
):
if
isinstance
(
act
,
six
.
string_types
):
act
=
{
'type'
:
act
}
else
:
raise
TypeError
(
str
(
act
)
+
" should be unicode or str"
)
if
'use_cudnn'
in
self
.
kwargs
and
self
.
kwargs
.
get
(
'use_cudnn'
):
act
[
'use_cudnn'
]
=
self
.
kwargs
.
get
(
'use_cudnn'
)
...
...
python/paddle/fluid/layers/__init__.py
浏览文件 @
29fac3c0
...
...
@@ -12,25 +12,25 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import
ops
from
ops
import
*
import
nn
from
nn
import
*
import
io
from
io
import
*
import
tensor
from
tensor
import
*
import
control_flow
from
control_flow
import
*
import
device
from
device
import
*
import
math_op_patch
from
math_op_patch
import
*
import
detection
from
detection
import
*
import
metric_op
from
metric_op
import
*
from
learning_rate_scheduler
import
*
from
.
import
ops
from
.
ops
import
*
from
.
import
nn
from
.
nn
import
*
from
.
import
io
from
.
io
import
*
from
.
import
tensor
from
.
tensor
import
*
from
.
import
control_flow
from
.
control_flow
import
*
from
.
import
device
from
.
device
import
*
from
.
import
math_op_patch
from
.
math_op_patch
import
*
from
.
import
detection
from
.
detection
import
*
from
.
import
metric_op
from
.
metric_op
import
*
from
.
learning_rate_scheduler
import
*
__all__
=
[]
__all__
+=
nn
.
__all__
...
...
python/paddle/fluid/layers/control_flow.py
浏览文件 @
29fac3c0
...
...
@@ -13,15 +13,16 @@
# limitations under the License.
import
contextlib
from
layer_function_generator
import
autodoc
,
templatedoc
from
tensor
import
assign
,
fill_constant
from
.
layer_function_generator
import
autodoc
,
templatedoc
from
.
tensor
import
assign
,
fill_constant
from
..
import
core
from
..framework
import
Program
,
Variable
,
Operator
from
..layer_helper
import
LayerHelper
,
unique_name
from
..initializer
import
force_init_on_cpu
from
ops
import
logical_and
,
logical_not
,
logical_or
from
.
ops
import
logical_and
,
logical_not
,
logical_or
import
numpy
import
warnings
from
functools
import
reduce
__all__
=
[
'While'
,
...
...
@@ -601,7 +602,7 @@ class StaticRNN(object):
boot_memories
=
[]
pre_memories
=
[]
memories
=
[]
for
_
,
mem
in
self
.
memories
.
iteritems
(
):
for
_
,
mem
in
list
(
self
.
memories
.
items
()
):
boot_memories
.
append
(
mem
.
init
)
pre_memories
.
append
(
mem
.
pre_mem
.
name
)
mem_var
=
rnn_block
.
var
(
mem
.
mem
.
name
)
...
...
@@ -1512,7 +1513,7 @@ class IfElse(object):
def
__call__
(
self
):
if
self
.
status
!=
self
.
OUT_IF_ELSE_BLOCKS
:
raise
ValueError
(
"IfElse::__call__ must be out of sub-block"
)
false_len
,
true_len
=
map
(
len
,
self
.
output_table
)
false_len
,
true_len
=
list
(
map
(
len
,
self
.
output_table
)
)
if
false_len
==
0
and
true_len
==
0
:
raise
ValueError
(
"Must invoke true_block/false_block before "
"__call__"
)
...
...
python/paddle/fluid/layers/detection.py
浏览文件 @
29fac3c0
...
...
@@ -15,12 +15,13 @@
All layers just related to the detection neural network.
"""
from
layer_function_generator
import
generate_layer_fn
from
layer_function_generator
import
autodoc
,
templatedoc
from
.
layer_function_generator
import
generate_layer_fn
from
.
layer_function_generator
import
autodoc
,
templatedoc
from
..layer_helper
import
LayerHelper
import
tensor
import
nn
from
.
import
tensor
from
.
import
nn
import
math
from
functools
import
reduce
__all__
=
[
'prior_box'
,
...
...
@@ -1032,7 +1033,7 @@ def multi_box_head(inputs,
min_sizes
=
[]
max_sizes
=
[]
step
=
int
(
math
.
floor
(((
max_ratio
-
min_ratio
))
/
(
num_layer
-
2
)))
for
ratio
in
x
range
(
min_ratio
,
max_ratio
+
1
,
step
):
for
ratio
in
range
(
min_ratio
,
max_ratio
+
1
,
step
):
min_sizes
.
append
(
base_size
*
ratio
/
100.
)
max_sizes
.
append
(
base_size
*
(
ratio
+
step
)
/
100.
)
min_sizes
=
[
base_size
*
.
10
]
+
min_sizes
...
...
python/paddle/fluid/layers/device.py
浏览文件 @
29fac3c0
...
...
@@ -15,7 +15,7 @@
All util layers.
"""
from
layer_function_generator
import
autodoc
from
.
layer_function_generator
import
autodoc
from
..framework
import
unique_name
from
..layer_helper
import
LayerHelper
from
..annotations
import
deprecated
...
...
python/paddle/fluid/layers/io.py
浏览文件 @
29fac3c0
...
...
@@ -16,8 +16,8 @@ import multiprocessing
import
threading
from
..data_feeder
import
DataFeeder
from
control_flow
import
BlockGuard
from
layer_function_generator
import
templatedoc
from
.
control_flow
import
BlockGuard
from
.
layer_function_generator
import
templatedoc
from
..
import
core
from
..executor
import
global_scope
from
..framework
import
convert_np_dtype_to_dtype_
,
default_main_program
,
\
...
...
@@ -69,7 +69,7 @@ def data(name,
"""
helper
=
LayerHelper
(
'data'
,
**
locals
())
shape
=
list
(
shape
)
for
i
in
x
range
(
len
(
shape
)):
for
i
in
range
(
len
(
shape
)):
if
shape
[
i
]
is
None
:
shape
[
i
]
=
-
1
append_batch_size
=
False
...
...
@@ -1005,7 +1005,7 @@ class Preprocessor(object):
source_lod_levels
=
self
.
underlying_reader
.
desc
.
lod_levels
()
self
.
source_var_names
=
[
unique_name
(
"preprocessor_source"
)
for
_
in
x
range
(
len
(
source_shapes
))
for
_
in
range
(
len
(
source_shapes
))
]
source_vars
=
[]
for
var_name
,
shape
,
dtype
,
lod_level
in
zip
(
...
...
python/paddle/fluid/layers/layer_function_generator.py
浏览文件 @
29fac3c0
...
...
@@ -12,11 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import
re
import
cStringIO
import
functools
import
warnings
import
string
from
six.moves
import
cStringIO
from
..proto
import
framework_pb2
from
..framework
import
OpProtoHolder
,
Variable
from
..layer_helper
import
LayerHelper
...
...
@@ -70,7 +70,7 @@ def _generate_doc_string_(op_proto):
if
not
isinstance
(
op_proto
,
framework_pb2
.
OpProto
):
raise
TypeError
(
"OpProto should be `framework_pb2.OpProto`"
)
buf
=
cStringIO
.
StringIO
()
buf
=
cStringIO
()
buf
.
write
(
escape_math
(
op_proto
.
comment
))
buf
.
write
(
'
\n
Args:
\n
'
)
for
each_input
in
op_proto
.
inputs
:
...
...
@@ -119,9 +119,9 @@ def generate_layer_fn(op_type):
"""
op_proto
=
OpProtoHolder
.
instance
().
get_op_proto
(
op_type
)
not_intermediate_outputs
=
\
filter
(
lambda
output
:
not
output
.
intermediate
,
op_proto
.
outputs
)
[
output
for
output
in
op_proto
.
outputs
if
not
output
.
intermediate
]
intermediate_outputs
=
\
filter
(
lambda
output
:
output
.
intermediate
,
op_proto
.
outputs
)
[
output
for
output
in
op_proto
.
outputs
if
output
.
intermediate
]
if
len
(
not_intermediate_outputs
)
!=
1
:
raise
ValueError
(
"Only one non intermediate output operator can be"
,
...
...
python/paddle/fluid/layers/learning_rate_scheduler.py
浏览文件 @
29fac3c0
...
...
@@ -20,10 +20,10 @@ User can also implement their own learning_rate_decay
strategy according to this module.
"""
import
control_flow
import
nn
import
ops
import
tensor
from
.
import
control_flow
from
.
import
nn
from
.
import
ops
from
.
import
tensor
from
..initializer
import
init_on_cpu
from
..framework
import
default_main_program
,
Parameter
...
...
python/paddle/fluid/layers/math_op_patch.py
浏览文件 @
29fac3c0
...
...
@@ -13,7 +13,7 @@
# limitations under the License.
from
..framework
import
Variable
,
unique_name
from
layer_function_generator
import
OpProtoHolder
from
.
layer_function_generator
import
OpProtoHolder
from
..initializer
import
force_init_on_cpu
...
...
python/paddle/fluid/layers/metric_op.py
浏览文件 @
29fac3c0
...
...
@@ -20,7 +20,7 @@ from ..layer_helper import LayerHelper
from
..initializer
import
Normal
,
Constant
from
..framework
import
Variable
from
..param_attr
import
ParamAttr
import
nn
from
.
import
nn
__all__
=
[
'accuracy'
,
'auc'
]
...
...
python/paddle/fluid/layers/nn.py
浏览文件 @
29fac3c0
...
...
@@ -33,11 +33,12 @@ from ..layer_helper import LayerHelper
from
..initializer
import
Normal
,
Constant
from
..framework
import
Variable
from
..param_attr
import
ParamAttr
from
layer_function_generator
import
autodoc
,
templatedoc
from
tensor
import
concat
import
utils
from
.
layer_function_generator
import
autodoc
,
templatedoc
from
.
tensor
import
concat
from
.
import
utils
import
random
from
..
import
unique_name
from
functools
import
reduce
__all__
=
[
'fc'
,
...
...
@@ -4849,7 +4850,7 @@ def dice_loss(input, label, epsilon=0.00001):
loss = fluid.layers.dice_loss(input=predictions, label=label, 2)
"""
label
=
one_hot
(
label
,
depth
=
input
.
shape
[
-
1
])
reduce_dim
=
range
(
1
,
len
(
input
.
shape
))
reduce_dim
=
list
(
range
(
1
,
len
(
input
.
shape
)
))
inse
=
reduce_sum
(
input
*
label
,
dim
=
reduce_dim
)
dice_denominator
=
reduce_sum
(
input
,
dim
=
reduce_dim
)
+
reduce_sum
(
...
...
python/paddle/fluid/layers/ops.py
浏览文件 @
29fac3c0
...
...
@@ -11,7 +11,7 @@
# 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.
from
layer_function_generator
import
generate_layer_fn
from
.
layer_function_generator
import
generate_layer_fn
__activations__
=
[
'sigmoid'
,
...
...
python/paddle/fluid/layers/tensor.py
浏览文件 @
29fac3c0
...
...
@@ -18,7 +18,7 @@ from ..framework import convert_np_dtype_to_dtype_
from
..framework
import
Variable
from
..initializer
import
Constant
,
force_init_on_cpu
from
..core
import
VarDesc
from
layer_function_generator
import
templatedoc
from
.
layer_function_generator
import
templatedoc
import
numpy
__all__
=
[
...
...
python/paddle/fluid/lod_tensor.py
浏览文件 @
29fac3c0
...
...
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import
core
from
.
import
core
import
numpy
as
np
__all__
=
[
'create_lod_tensor'
,
'create_random_int_lodtensor'
]
...
...
python/paddle/fluid/metrics.py
浏览文件 @
29fac3c0
...
...
@@ -79,10 +79,10 @@ class MetricBase(object):
"""
states
=
{
attr
:
value
for
attr
,
value
in
self
.
__dict__
.
iteritems
(
)
for
attr
,
value
in
list
(
self
.
__dict__
.
items
()
)
if
not
attr
.
startswith
(
"_"
)
}
for
attr
,
value
in
states
.
iteritems
(
):
for
attr
,
value
in
list
(
states
.
items
()
):
if
isinstance
(
value
,
int
):
setattr
(
self
,
attr
,
0
)
elif
isinstance
(
value
,
float
):
...
...
@@ -105,7 +105,7 @@ class MetricBase(object):
"""
states
=
{
attr
:
value
for
attr
,
value
in
self
.
__dict__
.
iteritems
(
)
for
attr
,
value
in
list
(
self
.
__dict__
.
items
()
)
if
not
attr
.
startswith
(
"_"
)
}
config
=
{}
...
...
python/paddle/fluid/net_drawer.py
浏览文件 @
29fac3c0
...
...
@@ -24,7 +24,7 @@ logger = logging.getLogger(__name__)
logger
.
setLevel
(
logging
.
INFO
)
try
:
from
graphviz
import
Digraph
from
.
graphviz
import
Digraph
except
ImportError
:
logger
.
info
(
'Cannot import graphviz, which is required for drawing a network. This '
...
...
@@ -77,7 +77,7 @@ def parse_graph(program, graph, var_dict, **kwargs):
# fill the known variables
for
block
in
program
.
blocks
:
for
var
in
block
.
vars
:
if
not
var_dict
.
has_key
(
var
)
:
if
var
not
in
var_dict
:
var_dict
[
var
]
=
"Feed"
temp_id
=
0
...
...
@@ -93,17 +93,17 @@ def parse_graph(program, graph, var_dict, **kwargs):
var_dict
[
arg
]
=
op
.
type
for
e
in
op
.
inputs
:
for
arg
in
e
.
arguments
:
if
var_dict
.
has_key
(
arg
)
:
if
arg
in
var_dict
:
graph
.
edge
(
**
draw_edge
(
var_dict
,
op
,
e
,
arg
))
break
# only plot the first block
def
draw_graph
(
startup_program
,
main_program
,
**
kwargs
):
if
kwargs
.
has_key
(
"graph_attr"
)
:
if
"graph_attr"
in
kwargs
:
GRAPH_STYLE
.
update
(
kwargs
[
graph_attr
])
if
kwargs
.
has_key
(
"node_attr"
)
:
if
"node_attr"
in
kwargs
:
OP_STYLE
.
update
(
kwargs
[
node_attr
])
if
kwargs
.
has_key
(
"edge_attr"
)
:
if
"edge_attr"
in
kwargs
:
VAR_STYLE
.
update
(
kwargs
[
edge_attr
])
graph_id
=
unique_id
()
...
...
python/paddle/fluid/nets.py
浏览文件 @
29fac3c0
...
...
@@ -11,7 +11,7 @@
# 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
layers
from
.
import
layers
__all__
=
[
"simple_img_conv_pool"
,
...
...
@@ -210,7 +210,7 @@ def img_conv_group(input,
conv_with_batchnorm
=
__extend_list__
(
conv_with_batchnorm
)
conv_batchnorm_drop_rate
=
__extend_list__
(
conv_batchnorm_drop_rate
)
for
i
in
x
range
(
len
(
conv_num_filter
)):
for
i
in
range
(
len
(
conv_num_filter
)):
local_conv_act
=
conv_act
if
conv_with_batchnorm
[
i
]:
local_conv_act
=
None
...
...
@@ -488,10 +488,11 @@ def scaled_dot_product_attention(queries,
trans_x
=
layers
.
transpose
(
x
,
perm
=
[
0
,
2
,
1
,
3
])
return
layers
.
reshape
(
x
=
trans_x
,
shape
=
map
(
int
,
[
trans_x
.
shape
[
0
],
trans_x
.
shape
[
1
],
trans_x
.
shape
[
2
]
*
trans_x
.
shape
[
3
]
]))
shape
=
list
(
map
(
int
,
[
trans_x
.
shape
[
0
],
trans_x
.
shape
[
1
],
trans_x
.
shape
[
2
]
*
trans_x
.
shape
[
3
]
])))
q
,
k
,
v
=
__compute_qkv
(
queries
,
keys
,
values
,
num_heads
)
...
...
python/paddle/fluid/op.py
浏览文件 @
29fac3c0
...
...
@@ -12,6 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import
six
import
paddle.fluid.core
as
core
import
paddle.fluid.proto.framework_pb2
as
framework_pb2
...
...
@@ -24,13 +26,13 @@ def get_all_op_protos():
protostrs
=
core
.
get_all_op_protos
()
ret_values
=
[]
for
pbstr
in
protostrs
:
op_proto
=
framework_pb2
.
OpProto
.
FromString
(
s
tr
(
pbstr
))
op_proto
=
framework_pb2
.
OpProto
.
FromString
(
s
ix
.
binary_type
(
pbstr
))
ret_values
.
append
(
op_proto
)
return
ret_values
def
is_str
(
s
):
return
isinstance
(
s
,
s
tr
)
or
isinstance
(
s
,
unicode
)
return
isinstance
(
s
,
s
ix
.
string_types
)
class
OpDescCreationMethod
(
object
):
...
...
@@ -189,7 +191,7 @@ class OperatorFactory(object):
return
self
.
get_op_info
(
t
).
method
(
**
kwargs
)
def
types
(
self
):
return
self
.
op_methods
.
keys
(
)
return
list
(
self
.
op_methods
.
keys
()
)
def
get_op_info
(
self
,
t
):
if
t
not
in
self
.
op_methods
:
...
...
@@ -197,13 +199,13 @@ class OperatorFactory(object):
return
self
.
op_methods
.
get
(
t
)
def
get_op_input_names
(
self
,
type
):
return
map
(
lambda
x
:
x
[
0
],
self
.
get_op_info
(
type
).
inputs
)
return
[
x
[
0
]
for
x
in
self
.
get_op_info
(
type
).
inputs
]
def
get_op_inputs
(
self
,
type
):
return
self
.
get_op_info
(
type
).
inputs
def
get_op_output_names
(
self
,
type
):
return
map
(
lambda
x
:
x
[
0
],
self
.
get_op_info
(
type
).
outputs
)
return
[
x
[
0
]
for
x
in
self
.
get_op_info
(
type
).
outputs
]
def
get_op_outputs
(
self
,
type
):
return
self
.
get_op_info
(
type
).
outputs
...
...
python/paddle/fluid/optimizer.py
浏览文件 @
29fac3c0
...
...
@@ -14,15 +14,15 @@
import
re
from
collections
import
defaultdict
from
paddle.fluid.framework
import
Program
,
Variable
import
framework
import
layers
from
backward
import
append_backward
from
framework
import
program_guard
import
unique_name
from
initializer
import
Constant
from
layer_helper
import
LayerHelper
from
regularizer
import
append_regularization_ops
from
clip
import
append_gradient_clip_ops
,
error_clip_callback
from
.
import
framework
from
.
import
layers
from
.
backward
import
append_backward
from
.
framework
import
program_guard
from
.
import
unique_name
from
.
initializer
import
Constant
from
.
layer_helper
import
LayerHelper
from
.
regularizer
import
append_regularization_ops
from
.
clip
import
append_gradient_clip_ops
,
error_clip_callback
from
contextlib
import
contextmanager
__all__
=
[
...
...
python/paddle/fluid/parallel_executor.py
浏览文件 @
29fac3c0
...
...
@@ -12,10 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import
core
from
__future__
import
print_function
import
multiprocessing
import
framework
import
executor
from
.
import
core
from
.
import
framework
from
.
import
executor
import
warnings
import
sys
import
os
...
...
@@ -94,7 +95,7 @@ class ParallelExecutor(object):
self
.
_places
=
[]
self
.
_act_places
=
[]
if
use_cuda
:
for
i
in
x
range
(
core
.
get_cuda_device_count
()):
for
i
in
range
(
core
.
get_cuda_device_count
()):
p
=
core
.
Place
()
self
.
_act_places
.
append
(
core
.
CUDAPlace
(
i
))
p
.
set_place
(
self
.
_act_places
[
-
1
])
...
...
@@ -102,7 +103,7 @@ class ParallelExecutor(object):
else
:
cpu_num
=
int
(
os
.
environ
.
get
(
'CPU_NUM'
,
multiprocessing
.
cpu_count
()))
for
i
in
x
range
(
cpu_num
):
for
i
in
range
(
cpu_num
):
p
=
core
.
Place
()
self
.
_act_places
.
append
(
core
.
CPUPlace
())
p
.
set_place
(
self
.
_act_places
[
-
1
])
...
...
@@ -143,16 +144,16 @@ class ParallelExecutor(object):
)
if
share_vars_from
else
[]
self
.
persistable_vars
=
[
v
.
name
for
v
in
filter
(
lambda
var
:
var
.
persistable
and
var
.
type
!=
core
.
VarDesc
.
VarType
.
RAW
,
main
.
list_vars
())
v
.
name
for
v
in
[
var
for
var
in
main
.
list_vars
()
if
var
.
persistable
and
var
.
type
!=
core
.
VarDesc
.
VarType
.
RAW
]
]
self
.
executor
=
core
.
ParallelExecutor
(
self
.
_places
,
set
([
p
.
name
for
p
in
main
.
global_block
().
_
iter_parameters
()
p
.
name
for
p
in
main
.
global_block
().
iter_parameters
()
if
not
p
.
stop_gradient
]),
set
(
self
.
persistable_vars
),
main
.
desc
,
loss_name
...
...
@@ -227,7 +228,9 @@ class ParallelExecutor(object):
"""
if
feed
is
None
and
feed_dict
is
not
None
:
feed
=
feed_dict
print
>>
sys
.
stderr
,
"`feed_dict` is deprecated. Please use `feed=`"
print
(
"`feed_dict` is deprecated. Please use `feed=`"
,
file
=
sys
.
stderr
)
if
isinstance
(
feed
,
dict
):
feed_tensor_dict
=
dict
()
...
...
python/paddle/fluid/param_attr.py
浏览文件 @
29fac3c0
...
...
@@ -12,8 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
initializer
import
Initializer
,
Xavier
,
Constant
from
regularizer
import
WeightDecayRegularizer
import
six
from
.initializer
import
Initializer
,
Xavier
,
Constant
from
.regularizer
import
WeightDecayRegularizer
__all__
=
[
'ParamAttr'
,
...
...
@@ -134,7 +136,7 @@ class ParamAttr(object):
return
[
ParamAttr
.
_to_attr
(
a
)
for
a
in
arg
]
elif
isinstance
(
arg
,
ParamAttr
):
return
arg
elif
isinstance
(
arg
,
s
tr
)
or
isinstance
(
arg
,
unicode
):
elif
isinstance
(
arg
,
s
ix
.
string_types
):
return
ParamAttr
(
name
=
arg
)
elif
isinstance
(
arg
,
Initializer
):
return
ParamAttr
(
initializer
=
arg
)
...
...
python/paddle/fluid/profiler.py
浏览文件 @
29fac3c0
...
...
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import
core
from
.
import
core
from
contextlib
import
contextmanager
import
os
...
...
python/paddle/fluid/recordio_writer.py
浏览文件 @
29fac3c0
...
...
@@ -13,8 +13,8 @@
# limitations under the License.
import
os
import
core
import
contextlib
from
.
import
core
__all__
=
[
'convert_reader_to_recordio_file'
,
'convert_reader_to_recordio_files'
]
...
...
python/paddle/fluid/regularizer.py
浏览文件 @
29fac3c0
...
...
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import
framework
from
.
import
framework
from
.
import
core
__all__
=
[
'L1Decay'
,
'L2Decay'
,
'L1DecayRegularizer'
,
'L2DecayRegularizer'
]
...
...
python/paddle/fluid/tests/book/high-level-api/fit_a_line/test_fit_a_line.py
浏览文件 @
29fac3c0
...
...
@@ -63,7 +63,7 @@ def train(use_cuda, train_program, params_dirname):
if
event
.
step
==
10
:
test_metrics
=
trainer
.
test
(
reader
=
test_reader
,
feed_order
=
[
'x'
,
'y'
])
print
test_metrics
print
(
test_metrics
)
'''
...
['25.768919467926025']
...
...
python/paddle/fluid/tests/book/high-level-api/image_classification/cifar10_small_test_set.py
浏览文件 @
29fac3c0
...
...
@@ -28,11 +28,12 @@ images per class.
"""
import
cPickle
import
itertools
import
numpy
import
paddle.v2.dataset.common
import
tarfile
from
six.moves
import
cPickle
as
pickle
from
six.moves
import
zip
__all__
=
[
'train10'
]
...
...
@@ -46,7 +47,7 @@ def reader_creator(filename, sub_name, batch_size=None):
data
=
batch
[
'data'
]
labels
=
batch
.
get
(
'labels'
,
batch
.
get
(
'fine_labels'
,
None
))
assert
labels
is
not
None
for
sample
,
label
in
itertools
.
i
zip
(
data
,
labels
):
for
sample
,
label
in
zip
(
data
,
labels
):
yield
(
sample
/
255.0
).
astype
(
numpy
.
float32
),
int
(
label
)
def
reader
():
...
...
@@ -56,7 +57,7 @@ def reader_creator(filename, sub_name, batch_size=None):
batch_count
=
0
for
name
in
names
:
batch
=
cP
ickle
.
load
(
f
.
extractfile
(
name
))
batch
=
p
ickle
.
load
(
f
.
extractfile
(
name
))
for
item
in
read_batch
(
batch
):
if
isinstance
(
batch_size
,
int
)
and
batch_count
>
batch_size
:
break
...
...
python/paddle/fluid/tests/book/high-level-api/image_classification/test_image_classification_resnet.py
浏览文件 @
29fac3c0
...
...
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
paddle
import
paddle.fluid
as
fluid
import
numpy
...
...
python/paddle/fluid/tests/book/high-level-api/image_classification/test_image_classification_vgg.py
浏览文件 @
29fac3c0
...
...
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
paddle
import
paddle.fluid
as
fluid
import
numpy
...
...
python/paddle/fluid/tests/book/high-level-api/label_semantic_roles/test_label_semantic_roles_newapi.py
浏览文件 @
29fac3c0
...
...
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
paddle
import
paddle.fluid
as
fluid
import
numpy
as
np
...
...
@@ -178,14 +176,15 @@ def train(use_cuda, train_program, params_dirname):
if
float
(
avg_cost
)
<
100.0
:
# Large value to increase CI speed
trainer
.
save_params
(
params_dirname
)
else
:
print
(
'BatchID {0}, Test Loss {1:0.2}'
.
format
(
event
.
epoch
+
1
,
float
(
avg_cost
)))
print
(
(
'BatchID {0}, Test Loss {1:0.2}'
.
format
(
event
.
epoch
+
1
,
float
(
avg_cost
))))
if
math
.
isnan
(
float
(
avg_cost
)):
sys
.
exit
(
"got NaN loss, training failed."
)
elif
isinstance
(
event
,
fluid
.
EndStepEvent
):
print
(
"Step {0}, Epoch {1} Metrics {2}"
.
format
(
event
.
step
,
event
.
epoch
,
map
(
np
.
array
,
event
.
metrics
)))
event
.
step
,
event
.
epoch
,
list
(
map
(
np
.
array
,
event
.
metrics
)
)))
if
event
.
step
==
1
:
# Run 2 iterations to speed CI
trainer
.
save_params
(
params_dirname
)
trainer
.
stop
()
...
...
python/paddle/fluid/tests/book/high-level-api/machine_translation/test_machine_translation.py
浏览文件 @
29fac3c0
...
...
@@ -250,7 +250,7 @@ def decode_main(use_cuda, is_sparse):
feeder
=
fluid
.
DataFeeder
(
feed_list
,
place
)
for
data
in
train_data
():
feed_dict
=
feeder
.
feed
(
map
(
lambda
x
:
[
x
[
0
]],
data
)
)
feed_dict
=
feeder
.
feed
(
[[
x
[
0
]]
for
x
in
data
]
)
feed_dict
[
'init_ids'
]
=
init_ids
feed_dict
[
'init_scores'
]
=
init_scores
...
...
@@ -259,7 +259,7 @@ def decode_main(use_cuda, is_sparse):
feed
=
feed_dict
,
fetch_list
=
[
translation_ids
,
translation_scores
],
return_numpy
=
False
)
print
result_ids
.
recursive_sequence_lengths
(
)
print
(
result_ids
.
recursive_sequence_lengths
()
)
break
...
...
python/paddle/fluid/tests/book/high-level-api/recognize_digits/test_recognize_digits_conv.py
浏览文件 @
29fac3c0
...
...
@@ -11,7 +11,7 @@
# 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.
from
__future__
import
print_function
import
argparse
import
paddle.fluid
as
fluid
import
paddle.fluid.core
as
core
...
...
@@ -89,8 +89,10 @@ def train(use_cuda, train_program, params_dirname):
if
math
.
isnan
(
avg_cost
):
sys
.
exit
(
"got NaN loss, training failed."
)
elif
isinstance
(
event
,
fluid
.
EndStepEvent
):
print
(
"Step {0}, Epoch {1} Metrics {2}"
.
format
(
event
.
step
,
event
.
epoch
,
map
(
numpy
.
array
,
event
.
metrics
)))
print
(
(
"Step {0}, Epoch {1} Metrics {2}"
.
format
(
event
.
step
,
event
.
epoch
,
list
(
map
(
numpy
.
array
,
event
.
metrics
)))))
train_reader
=
paddle
.
batch
(
paddle
.
reader
.
shuffle
(
...
...
python/paddle/fluid/tests/book/high-level-api/recognize_digits/test_recognize_digits_mlp.py
浏览文件 @
29fac3c0
...
...
@@ -11,7 +11,7 @@
# 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.
from
__future__
import
print_function
import
argparse
import
paddle.fluid
as
fluid
import
paddle
...
...
python/paddle/fluid/tests/book/high-level-api/recommender_system/test_recommender_system_newapi.py
浏览文件 @
29fac3c0
...
...
@@ -186,8 +186,9 @@ def train(use_cuda, train_program, params_dirname):
trainer
.
save_params
(
params_dirname
)
trainer
.
stop
()
else
:
print
(
'BatchID {0}, Test Loss {1:0.2}'
.
format
(
event
.
epoch
+
1
,
float
(
avg_cost
)))
print
(
(
'BatchID {0}, Test Loss {1:0.2}'
.
format
(
event
.
epoch
+
1
,
float
(
avg_cost
))))
if
math
.
isnan
(
float
(
avg_cost
)):
sys
.
exit
(
"got NaN loss, training failed."
)
...
...
python/paddle/fluid/tests/book/high-level-api/understand_sentiment/test_understand_sentiment_conv.py
浏览文件 @
29fac3c0
...
...
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
paddle
import
paddle.fluid
as
fluid
from
functools
import
partial
...
...
@@ -98,7 +96,7 @@ def train(use_cuda, train_program, params_dirname):
sys
.
exit
(
"got NaN loss, training failed."
)
elif
isinstance
(
event
,
fluid
.
EndStepEvent
):
print
(
"Step {0}, Epoch {1} Metrics {2}"
.
format
(
event
.
step
,
event
.
epoch
,
map
(
np
.
array
,
event
.
metrics
)))
event
.
step
,
event
.
epoch
,
list
(
map
(
np
.
array
,
event
.
metrics
)
)))
if
event
.
step
==
1
:
# Run 2 iterations to speed CI
trainer
.
save_params
(
params_dirname
)
trainer
.
stop
()
...
...
python/paddle/fluid/tests/book/high-level-api/understand_sentiment/test_understand_sentiment_dynamic_rnn.py
浏览文件 @
29fac3c0
...
...
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
paddle
import
paddle.fluid
as
fluid
from
functools
import
partial
...
...
@@ -113,7 +111,7 @@ def train(use_cuda, train_program, params_dirname):
sys
.
exit
(
"got NaN loss, training failed."
)
elif
isinstance
(
event
,
fluid
.
EndStepEvent
):
print
(
"Step {0}, Epoch {1} Metrics {2}"
.
format
(
event
.
step
,
event
.
epoch
,
map
(
np
.
array
,
event
.
metrics
)))
event
.
step
,
event
.
epoch
,
list
(
map
(
np
.
array
,
event
.
metrics
)
)))
if
event
.
step
==
1
:
# Run 2 iterations to speed CI
trainer
.
save_params
(
params_dirname
)
trainer
.
stop
()
...
...
python/paddle/fluid/tests/book/high-level-api/understand_sentiment/test_understand_sentiment_stacked_lstm.py
浏览文件 @
29fac3c0
...
...
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
paddle
import
paddle.fluid
as
fluid
from
functools
import
partial
...
...
@@ -107,7 +105,7 @@ def train(use_cuda, train_program, params_dirname):
sys
.
exit
(
"got NaN loss, training failed."
)
elif
isinstance
(
event
,
fluid
.
EndStepEvent
):
print
(
"Step {0}, Epoch {1} Metrics {2}"
.
format
(
event
.
step
,
event
.
epoch
,
map
(
np
.
array
,
event
.
metrics
)))
event
.
step
,
event
.
epoch
,
list
(
map
(
np
.
array
,
event
.
metrics
)
)))
if
event
.
step
==
1
:
# Run 2 iterations to speed CI
trainer
.
save_params
(
params_dirname
)
trainer
.
stop
()
...
...
python/paddle/fluid/tests/book/notest_understand_sentiment.py
浏览文件 @
29fac3c0
...
...
@@ -11,7 +11,7 @@
# 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.
from
__future__
import
print_function
from
paddle.fluid.layers.device
import
get_places
import
unittest
import
paddle.fluid
as
fluid
...
...
@@ -175,7 +175,7 @@ def train(word_dict,
def
train_loop
(
main_program
):
exe
.
run
(
fluid
.
default_startup_program
())
for
pass_id
in
x
range
(
PASS_NUM
):
for
pass_id
in
range
(
PASS_NUM
):
for
data
in
train_data
():
cost_val
,
acc_val
=
exe
.
run
(
main_program
,
feed
=
feeder
.
feed
(
data
),
...
...
python/paddle/fluid/tests/book/test_fit_a_line.py
浏览文件 @
29fac3c0
...
...
@@ -114,7 +114,7 @@ def infer(use_cuda, save_dirname=None):
test_reader
=
paddle
.
batch
(
paddle
.
dataset
.
uci_housing
.
test
(),
batch_size
=
batch_size
)
test_data
=
test_reader
().
next
(
)
test_data
=
next
(
test_reader
()
)
test_feat
=
numpy
.
array
(
[
data
[
0
]
for
data
in
test_data
]).
astype
(
"float32"
)
test_label
=
numpy
.
array
(
...
...
python/paddle/fluid/tests/book/test_image_classification.py
浏览文件 @
29fac3c0
...
...
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
paddle
import
paddle.fluid
as
fluid
import
contextlib
...
...
python/paddle/fluid/tests/book/test_label_semantic_roles.py
浏览文件 @
29fac3c0
...
...
@@ -181,7 +181,7 @@ def train(use_cuda, save_dirname=None, is_local=True):
start_time
=
time
.
time
()
batch_id
=
0
for
pass_id
in
x
range
(
PASS_NUM
):
for
pass_id
in
range
(
PASS_NUM
):
for
data
in
train_data
():
cost
=
exe
.
run
(
main_program
,
feed
=
feeder
.
feed
(
data
),
...
...
python/paddle/fluid/tests/book/test_machine_translation.py
浏览文件 @
29fac3c0
...
...
@@ -199,7 +199,7 @@ def train_main(use_cuda, is_sparse, is_local=True):
feeder
=
fluid
.
DataFeeder
(
feed_list
,
place
)
batch_id
=
0
for
pass_id
in
x
range
(
1
):
for
pass_id
in
range
(
1
):
for
data
in
train_data
():
outs
=
exe
.
run
(
main_program
,
feed
=
feeder
.
feed
(
data
),
...
...
@@ -273,7 +273,7 @@ def decode_main(use_cuda, is_sparse):
feeder
=
fluid
.
DataFeeder
(
feed_list
,
place
)
for
data
in
train_data
():
feed_dict
=
feeder
.
feed
(
map
(
lambda
x
:
[
x
[
0
]],
data
)
)
feed_dict
=
feeder
.
feed
(
[[
x
[
0
]]
for
x
in
data
]
)
feed_dict
[
'init_ids'
]
=
init_ids
feed_dict
[
'init_scores'
]
=
init_scores
...
...
@@ -282,7 +282,7 @@ def decode_main(use_cuda, is_sparse):
feed
=
feed_dict
,
fetch_list
=
[
translation_ids
,
translation_scores
],
return_numpy
=
False
)
print
result_ids
.
recursive_sequence_lengths
(
)
print
(
result_ids
.
recursive_sequence_lengths
()
)
break
...
...
python/paddle/fluid/tests/book/test_recognize_digits.py
浏览文件 @
29fac3c0
...
...
@@ -11,7 +11,6 @@
# 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.
from
__future__
import
print_function
import
paddle.fluid.core
as
core
import
math
...
...
python/paddle/fluid/tests/book/test_recommender_system.py
浏览文件 @
29fac3c0
python/paddle/fluid/tests/book/test_rnn_encoder_decoder.py
浏览文件 @
29fac3c0
...
...
@@ -175,7 +175,7 @@ def train(use_cuda, save_dirname=None):
feeder
=
fluid
.
DataFeeder
(
feed_list
,
place
)
batch_id
=
0
for
pass_id
in
x
range
(
2
):
for
pass_id
in
range
(
2
):
for
data
in
train_data
():
outs
=
exe
.
run
(
framework
.
default_main_program
(),
feed
=
feeder
.
feed
(
data
),
...
...
python/paddle/fluid/tests/book/test_word2vec.py
浏览文件 @
29fac3c0
...
...
@@ -85,9 +85,11 @@ def train(use_cuda, is_sparse, is_parallel, save_dirname, is_local=True):
pd
=
fluid
.
layers
.
ParallelDo
(
places
)
with
pd
.
do
():
avg_cost
,
predict_word
=
__network__
(
list
(
map
(
pd
.
read_input
,
[
first_word
,
second_word
,
third_word
,
forth_word
,
next_word
]))
first_word
,
second_word
,
third_word
,
forth_word
,
next_word
])))
pd
.
write_output
(
avg_cost
)
avg_cost
=
fluid
.
layers
.
mean
(
pd
())
...
...
python/paddle/fluid/tests/book_memory_optimization/test_memopt_fit_a_line.py
浏览文件 @
29fac3c0
...
...
@@ -78,7 +78,7 @@ for pass_id in range(PASS_NUM):
if
avg_loss_value
[
0
]
<
10.0
:
exit
(
0
)
# if avg cost less than 10.0, we think our code is good.
print
avg_loss_value
[
0
]
print
(
avg_loss_value
[
0
])
if
math
.
isnan
(
float
(
avg_loss_value
)):
sys
.
exit
(
"got NaN loss, training failed."
)
exit
(
1
)
python/paddle/fluid/tests/book_memory_optimization/test_memopt_image_classification_train.py
浏览文件 @
29fac3c0
...
...
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
sys
import
paddle
...
...
python/paddle/fluid/tests/book_memory_optimization/test_memopt_machine_translation.py
浏览文件 @
29fac3c0
...
...
@@ -118,7 +118,7 @@ def main():
feeder
=
fluid
.
DataFeeder
(
feed_list
,
place
)
batch_id
=
0
for
pass_id
in
x
range
(
10
):
for
pass_id
in
range
(
10
):
for
data
in
train_data
():
outs
=
exe
.
run
(
fluid
.
default_main_program
(),
feed
=
feeder
.
feed
(
data
),
...
...
python/paddle/fluid/tests/demo/fc_gan.py
浏览文件 @
29fac3c0
...
...
@@ -137,7 +137,7 @@ def main():
generated_img
=
exe
.
run
(
g_program
,
feed
=
{
'noise'
:
n
},
fetch_list
=
{
g_img
})[
0
]
real_data
=
numpy
.
array
(
map
(
lambda
x
:
x
[
0
],
data
)
).
astype
(
'float32'
)
real_data
=
numpy
.
array
(
[
x
[
0
]
for
x
in
data
]
).
astype
(
'float32'
)
real_data
=
real_data
.
reshape
(
num_true
,
784
)
total_data
=
numpy
.
concatenate
([
real_data
,
generated_img
])
total_label
=
numpy
.
concatenate
([
...
...
@@ -150,7 +150,7 @@ def main():
feed
=
{
'img'
:
total_data
,
'label'
:
total_label
},
fetch_list
=
{
d_loss
})[
0
]
for
_
in
x
range
(
NUM_TRAIN_TIMES_OF_DG
):
for
_
in
range
(
NUM_TRAIN_TIMES_OF_DG
):
n
=
numpy
.
random
.
uniform
(
low
=-
1.0
,
high
=
1.0
,
size
=
[
2
*
num_true
*
NOISE_SIZE
]).
astype
(
'float32'
).
reshape
(
...
...
python/paddle/fluid/tests/demo/file_reader/convert_data_to_recordio.py
浏览文件 @
29fac3c0
...
...
@@ -36,7 +36,7 @@ if len(sys.argv) == 1:
else
:
word_dict
=
load_vocab
(
sys
.
argv
[
1
])
word_dict
[
"<unk>"
]
=
len
(
word_dict
)
print
"Dict dim = "
,
len
(
word_dict
)
print
(
"Dict dim = "
,
len
(
word_dict
)
)
# input text data
data
=
fluid
.
layers
.
data
(
name
=
"words"
,
shape
=
[
1
],
dtype
=
"int64"
,
lod_level
=
1
)
...
...
python/paddle/fluid/tests/no_test_concurrency.py
浏览文件 @
29fac3c0
...
...
@@ -194,7 +194,7 @@ class TestRoutineOp(unittest.TestCase):
quit_ch
=
fluid
.
make_channel
(
dtype
=
core
.
VarDesc
.
VarType
.
LOD_TENSOR
)
with
fluid
.
Go
():
for
i
in
x
range
(
10
):
for
i
in
range
(
10
):
fluid
.
channel_recv
(
ch1
,
result
)
Print
(
result
)
...
...
python/paddle/fluid/tests/test_beam_search_decoder.py
浏览文件 @
29fac3c0
...
...
@@ -155,7 +155,7 @@ def train_main(use_cuda):
]
feeder
=
fluid
.
DataFeeder
(
feed_list
,
place
)
for
pass_id
in
x
range
(
1
):
for
pass_id
in
range
(
1
):
for
batch_id
,
data
in
enumerate
(
train_reader
()):
outs
=
exe
.
run
(
main_program
,
feed
=
feeder
.
feed
(
data
),
...
...
@@ -204,8 +204,8 @@ def decode_main(use_cuda):
]
feeder
=
fluid
.
DataFeeder
(
feed_list
,
place
)
data
=
train_reader
().
next
(
)
feed_dict
=
feeder
.
feed
(
map
(
lambda
x
:
[
x
[
0
]],
data
)
)
data
=
next
(
train_reader
()
)
feed_dict
=
feeder
.
feed
(
[[
x
[
0
]]
for
x
in
data
]
)
feed_dict
[
'init_ids'
]
=
init_ids
feed_dict
[
'init_scores'
]
=
init_scores
...
...
@@ -214,7 +214,7 @@ def decode_main(use_cuda):
feed
=
feed_dict
,
fetch_list
=
[
translation_ids
,
translation_scores
],
return_numpy
=
False
)
print
result_ids
.
lod
(
)
print
(
result_ids
.
lod
()
)
class
TestBeamSearchDecoder
(
unittest
.
TestCase
):
...
...
python/paddle/fluid/tests/test_detection.py
浏览文件 @
29fac3c0
...
...
@@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
paddle.fluid
as
fluid
import
paddle.fluid.layers
as
layers
from
paddle.fluid.framework
import
Program
,
program_guard
...
...
python/paddle/fluid/tests/test_error_clip.py
浏览文件 @
29fac3c0
...
...
@@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
__future__
import
print_function
import
numpy
as
np
import
paddle
import
paddle.fluid
as
fluid
...
...
python/paddle/fluid/tests/test_if_else_op.py
浏览文件 @
29fac3c0
...
...
@@ -76,15 +76,15 @@ class TestMNISTIfElseOp(unittest.TestCase):
PASS_NUM
=
100
for
pass_id
in
range
(
PASS_NUM
):
for
data
in
train_reader
():
x_data
=
np
.
array
(
map
(
lambda
x
:
x
[
0
],
data
)
).
astype
(
"float32"
)
y_data
=
np
.
array
(
map
(
lambda
x
:
x
[
1
],
data
)
).
astype
(
"int64"
)
x_data
=
np
.
array
(
[
x
[
0
]
for
x
in
data
]
).
astype
(
"float32"
)
y_data
=
np
.
array
(
[
x
[
1
]
for
x
in
data
]
).
astype
(
"int64"
)
y_data
=
np
.
expand_dims
(
y_data
,
axis
=
1
)
outs
=
exe
.
run
(
prog
,
feed
=
{
'x'
:
x_data
,
'y'
:
y_data
},
fetch_list
=
[
avg_loss
])
print
outs
[
0
]
print
(
outs
[
0
])
if
outs
[
0
]
<
1.0
:
return
self
.
assertFalse
(
True
)
...
...
@@ -131,15 +131,15 @@ class TestMNISTIfElseOp(unittest.TestCase):
PASS_NUM
=
100
for
pass_id
in
range
(
PASS_NUM
):
for
data
in
train_reader
():
x_data
=
np
.
array
(
map
(
lambda
x
:
x
[
0
],
data
)
).
astype
(
"float32"
)
y_data
=
np
.
array
(
map
(
lambda
x
:
x
[
1
],
data
)
).
astype
(
"int64"
)
x_data
=
np
.
array
(
[
x
[
0
]
for
x
in
data
]
).
astype
(
"float32"
)
y_data
=
np
.
array
(
[
x
[
1
]
for
x
in
data
]
).
astype
(
"int64"
)
y_data
=
y_data
.
reshape
((
y_data
.
shape
[
0
],
1
))
outs
=
exe
.
run
(
prog
,
feed
=
{
'x'
:
x_data
,
'y'
:
y_data
},
fetch_list
=
[
avg_loss
])
print
outs
[
0
]
print
(
outs
[
0
])
if
outs
[
0
]
<
1.0
:
return
self
.
assertFalse
(
True
)
...
...
python/paddle/fluid/tests/unittests/benchmark.py
浏览文件 @
29fac3c0
...
...
@@ -16,6 +16,7 @@ import numpy as np
import
unittest
import
time
import
itertools
import
six
import
paddle.fluid
as
fluid
import
paddle.fluid.core
as
core
...
...
@@ -40,8 +41,8 @@ class BenchmarkSuite(OpTest):
expect_t
=
np
.
array
(
item_cpu_out
)
actual
=
item_gpu_out
actual_t
=
np
.
array
(
item_gpu_out
)
var_name
=
variable
if
isinstance
(
variable
,
basestring
)
else
variable
.
name
var_name
=
variable
if
isinstance
(
variable
,
six
.
string_types
)
else
variable
.
name
self
.
assertTrue
(
np
.
allclose
(
actual_t
,
expect_t
,
atol
=
atol
),
...
...
@@ -53,7 +54,7 @@ class BenchmarkSuite(OpTest):
def
_get_input_names
(
self
):
inputs
=
[]
for
name
,
value
in
self
.
inputs
.
iteritems
(
):
for
name
,
value
in
list
(
self
.
inputs
.
items
()
):
if
isinstance
(
value
,
list
):
inputs
.
extend
([
sub_name
for
sub_name
,
_
in
value
])
inputs
.
append
(
name
)
...
...
@@ -61,7 +62,7 @@ class BenchmarkSuite(OpTest):
def
_get_output_names
(
self
):
outputs
=
[]
for
var_name
,
var
in
self
.
outputs
.
iteritems
(
):
for
var_name
,
var
in
list
(
self
.
outputs
.
items
()
):
if
isinstance
(
var
,
list
):
for
sub_var_name
,
sub_var
in
var
:
outputs
.
append
(
sub_var_name
)
...
...
python/paddle/fluid/tests/unittests/dist_se_resnext.py
浏览文件 @
29fac3c0
...
...
@@ -14,6 +14,7 @@
import
numpy
as
np
import
argparse
import
six
import
time
import
math
...
...
@@ -299,7 +300,7 @@ class DistSeResneXt2x2:
True
,
loss_name
=
avg_cost
.
name
,
exec_strategy
=
strategy
)
feed_var_list
=
[
var
for
var
in
trainer_prog
.
global_block
().
vars
.
iter
values
()
var
for
var
in
trainer_prog
.
global_block
().
vars
.
values
()
if
var
.
is_data
]
...
...
@@ -311,7 +312,7 @@ class DistSeResneXt2x2:
feed
=
feeder
.
feed
(
data
))
print
(
first_loss
)
for
i
in
xrange
(
5
):
for
i
in
six
.
moves
.
xrange
(
5
):
data
=
next
(
reader_generator
)
loss
,
=
exe
.
run
(
fetch_list
=
[
avg_cost
.
name
],
feed
=
feeder
.
feed
(
data
))
...
...
python/paddle/fluid/tests/unittests/op_test.py
浏览文件 @
29fac3c0
...
...
@@ -26,13 +26,15 @@ from paddle.fluid.op import Operator
from
paddle.fluid.executor
import
Executor
from
paddle.fluid.framework
import
Program
,
OpProtoHolder
,
Variable
from
testsuite
import
create_op
,
set_input
,
append_input_output
,
append_loss_ops
from
functools
import
reduce
from
six.moves
import
zip
def
randomize_probability
(
batch_size
,
class_num
,
dtype
=
'float32'
):
prob
=
np
.
random
.
uniform
(
0.1
,
1.0
,
size
=
(
batch_size
,
class_num
)).
astype
(
dtype
)
prob_sum
=
prob
.
sum
(
axis
=
1
)
for
i
in
x
range
(
len
(
prob
)):
for
i
in
range
(
len
(
prob
)):
prob
[
i
]
/=
prob_sum
[
i
]
return
prob
...
...
@@ -101,7 +103,7 @@ def get_numeric_gradient(place,
# we only compute gradient of one element each time.
# we use a for loop to compute the gradient of every element.
for
i
in
x
range
(
tensor_size
):
for
i
in
range
(
tensor_size
):
if
in_place
:
set_input
(
scope
,
op
,
inputs
,
place
)
...
...
@@ -159,7 +161,7 @@ class OpTest(unittest.TestCase):
assert
isinstance
(
numpy_dict
,
dict
),
"self.inputs, self.outputs must be numpy_dict"
for
var_name
,
var_value
in
numpy_dict
.
ite
rite
ms
():
for
var_name
,
var_value
in
numpy_dict
.
items
():
if
isinstance
(
var_value
,
(
np
.
ndarray
,
np
.
generic
)):
self
.
try_call_once
(
var_value
.
dtype
)
elif
isinstance
(
var_value
,
(
list
,
tuple
)):
...
...
@@ -223,7 +225,7 @@ class OpTest(unittest.TestCase):
def
_get_io_vars
(
self
,
block
,
numpy_inputs
):
inputs
=
{}
for
name
,
value
in
numpy_inputs
.
ite
rite
ms
():
for
name
,
value
in
numpy_inputs
.
items
():
if
isinstance
(
value
,
list
):
var_list
=
[
block
.
var
(
sub_name
)
for
sub_name
,
sub_value
in
value
...
...
@@ -266,7 +268,7 @@ class OpTest(unittest.TestCase):
# if the fetch_list is customized by user, we use it directly.
# if not, fill the fetch_list by the user configured outputs in test.
if
len
(
fetch_list
)
==
0
:
for
var_name
,
var
in
outputs
.
ite
rite
ms
():
for
var_name
,
var
in
outputs
.
items
():
if
isinstance
(
var
,
list
):
for
v
in
var
:
fetch_list
.
append
(
v
)
...
...
@@ -278,7 +280,7 @@ class OpTest(unittest.TestCase):
fetch_list
.
append
(
str
(
out_name
))
# fetch_list = map(block.var, fetch_list)
if
not
isinstance
(
fetch_list
[
0
],
fluid
.
framework
.
Variable
):
fetch_list
=
map
(
block
.
var
,
fetch_list
)
fetch_list
=
list
(
map
(
block
.
var
,
fetch_list
)
)
outs
=
executor
.
run
(
program
,
feed
=
feed_map
,
fetch_list
=
fetch_list
,
...
...
@@ -369,7 +371,7 @@ class OpTest(unittest.TestCase):
def
__assert_is_close
(
self
,
numeric_grads
,
analytic_grads
,
names
,
max_relative_error
,
msg_prefix
):
for
a
,
b
,
name
in
itertools
.
i
zip
(
numeric_grads
,
analytic_grads
,
names
):
for
a
,
b
,
name
in
zip
(
numeric_grads
,
analytic_grads
,
names
):
abs_a
=
np
.
abs
(
a
)
abs_a
[
abs_a
<
1e-3
]
=
1
...
...
@@ -510,6 +512,6 @@ class OpTest(unittest.TestCase):
use_cuda
=
use_cuda
,
loss_name
=
loss
.
name
,
main_program
=
prog
)
else
:
executor
=
Executor
(
place
)
return
map
(
np
.
array
,
executor
.
run
(
prog
,
feed_dict
,
fetch_list
,
return_numpy
=
False
))
return
list
(
map
(
np
.
array
,
executor
.
run
(
prog
,
feed_dict
,
fetch_list
,
return_numpy
=
False
)
))
python/paddle/fluid/tests/unittests/parallel_executor_test_base.py
浏览文件 @
29fac3c0
...
...
@@ -91,7 +91,7 @@ class TestParallelExecutorBase(unittest.TestCase):
first_loss
,
=
run_executor
(
exe
=
exe
,
feed
=
feed_dict
,
fetch_list
=
[
loss
.
name
])
for
i
in
x
range
(
iter
):
for
i
in
range
(
iter
):
run_executor
(
exe
=
exe
,
feed
=
feed_dict
,
fetch_list
=
[])
last_loss
,
=
run_executor
(
...
...
@@ -99,8 +99,8 @@ class TestParallelExecutorBase(unittest.TestCase):
end
=
time
.
time
()
if
batch_size
is
not
None
:
print
"%.4f Instance per second"
%
(
(
batch_size
*
iter
+
2
)
/
(
end
-
begin
))
print
(
"%.4f Instance per second"
%
(
(
batch_size
*
iter
+
2
)
/
(
end
-
begin
))
)
avg_last_loss_val
=
np
.
array
(
last_loss
).
mean
()
avg_first_loss_val
=
np
.
array
(
first_loss
).
mean
()
...
...
@@ -108,6 +108,6 @@ class TestParallelExecutorBase(unittest.TestCase):
float
(
avg_first_loss_val
)):
sys
.
exit
(
"got NaN loss, training failed."
)
print
first_loss
,
last_loss
print
(
first_loss
,
last_loss
)
# self.assertGreater(first_loss[0], last_loss[0])
return
first_loss
,
last_loss
python/paddle/fluid/tests/unittests/test_accuracy_op.py
浏览文件 @
29fac3c0
...
...
@@ -26,7 +26,7 @@ class TestAccuracyOp(OpTest):
label
=
np
.
random
.
randint
(
0
,
2
,
(
n
,
1
))
self
.
inputs
=
{
'Out'
:
infer
,
'Indices'
:
indices
,
"Label"
:
label
}
num_correct
=
0
for
rowid
in
x
range
(
n
):
for
rowid
in
range
(
n
):
for
ele
in
indices
[
rowid
]:
if
ele
==
label
[
rowid
]:
num_correct
+=
1
...
...
python/paddle/fluid/tests/unittests/test_adam_op.py
浏览文件 @
29fac3c0
...
...
@@ -273,7 +273,7 @@ class TestSparseAdamOp(unittest.TestCase):
self
.
setup
(
scope
,
place
)
op_args
=
dict
()
for
key
,
np_array
in
self
.
dense_inputs
.
ite
rite
ms
():
for
key
,
np_array
in
self
.
dense_inputs
.
items
():
var
=
scope
.
var
(
key
).
get_tensor
()
var
.
set
(
np_array
,
place
)
op_args
[
key
]
=
key
...
...
@@ -290,7 +290,7 @@ class TestSparseAdamOp(unittest.TestCase):
adam_op
=
Operator
(
"adam"
,
**
op_args
)
adam_op
.
run
(
scope
,
place
)
for
key
,
np_array
in
self
.
outputs
.
ite
rite
ms
():
for
key
,
np_array
in
self
.
outputs
.
items
():
out_var
=
scope
.
var
(
key
).
get_tensor
()
actual
=
np
.
array
(
out_var
)
actual
=
actual
.
reshape
([
actual
.
size
])
...
...
python/paddle/fluid/tests/unittests/test_array_read_write_op.py
浏览文件 @
29fac3c0
...
...
@@ -80,8 +80,9 @@ class TestArrayReadWrite(unittest.TestCase):
append_backward
(
total_sum_scaled
)
g_vars
=
map
(
default_main_program
().
global_block
().
var
,
[
each_x
.
name
+
"@GRAD"
for
each_x
in
x
])
g_vars
=
list
(
map
(
default_main_program
().
global_block
().
var
,
[
each_x
.
name
+
"@GRAD"
for
each_x
in
x
]))
g_out
=
[
item
.
sum
()
for
item
in
exe
.
run
(
...
...
python/paddle/fluid/tests/unittests/test_batch_norm_op.py
浏览文件 @
29fac3c0
...
...
@@ -415,7 +415,7 @@ class TestBatchNormOpTraining(unittest.TestCase):
self
.
__assert_close
(
scale_grad
,
out
[
6
],
"scale_grad"
)
self
.
__assert_close
(
bias_grad
,
out
[
7
],
"bias_grad"
)
print
"op test forward passed: "
,
str
(
place
),
data_layout
print
(
"op test forward passed: "
,
str
(
place
),
data_layout
)
places
=
[
core
.
CPUPlace
()]
...
...
python/paddle/fluid/tests/unittests/test_beam_search_op.py
浏览文件 @
29fac3c0
...
...
@@ -59,8 +59,7 @@ class BeamSearchOpTester(unittest.TestCase):
np
.
allclose
(
np
.
array
(
selected_scores
),
np
.
array
([
0.5
,
0.6
,
0.9
,
0.7
])[:,
np
.
newaxis
]))
self
.
assertEqual
(
selected_ids
.
lod
(),
[[
0L
,
2L
,
4L
],
[
0L
,
1L
,
2L
,
3L
,
4L
]])
self
.
assertEqual
(
selected_ids
.
lod
(),
[[
0
,
2
,
4
],
[
0
,
1
,
2
,
3
,
4
]])
def
_create_pre_ids
(
self
):
np_data
=
np
.
array
([[
1
,
2
,
3
,
4
]],
dtype
=
'int64'
)
...
...
python/paddle/fluid/tests/unittests/test_bipartite_match_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_chunk_eval_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_conditional_block.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_conv_shift_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_create_op_doc_string.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_data_balance.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_default_scope_funcs.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_detection_map_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_dist_mnist.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_dist_transpiler.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_dist_word2vec.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_dyn_rnn.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_dynrnn_gradient_check.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_dynrnn_static_input.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_elementwise_gradient_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_gru_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_gru_unit_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_image_classification_layer.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_inference_model_io.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_layer_norm_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_layers.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_lod_rank_table.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_lod_tensor_array.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_lod_tensor_array_ops.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_lookup_table_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_mean_iou.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_multiclass_nms_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_nce.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_one_hot_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_parallel_executor_crf.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_parallel_executor_fetch_feed.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_parallel_executor_mnist.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_parallel_executor_test_while_train.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_parallel_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_polygon_box_transform.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_pool2d_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_pool3d_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_pool_max_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_positive_negative_pair_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_precision_recall_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_protobuf_descs.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_reader_reset.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_recurrent_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_seq_conv.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_sequence_expand.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_sequence_reshape.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_shrink_rnn_memory.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_split_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_split_selected_rows_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_spp_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_top_k_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_unpool_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/test_while_op.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/testsuite.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/tests/unittests/transformer_model.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/trainer.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/transpiler/__init__.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/transpiler/details/__init__.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/transpiler/details/program_utils.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/transpiler/distribute_transpiler.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/transpiler/inference_transpiler.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/transpiler/memory_optimization_transpiler.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/fluid/unique_name.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/reader/creator.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/reader/decorator.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/reader/tests/decorator_test.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/trainer/PyDataProviderWrapper.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/trainer_config_helpers/data_sources.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
python/paddle/trainer_config_helpers/layers.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
tools/test_runner.py
浏览文件 @
29fac3c0
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录