From d263238fdf50b43dbf8bd8c2c5a2cd1649ee6849 Mon Sep 17 00:00:00 2001 From: ruri Date: Fri, 14 Jun 2019 10:40:46 +0800 Subject: [PATCH] cherry pick 17947 test=release/1.5 (#18048) --- paddle/fluid/API.spec | 2 +- python/paddle/fluid/layers/nn.py | 27 +++++++++++++++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/paddle/fluid/API.spec b/paddle/fluid/API.spec index 99f763f315..73788f9359 100644 --- a/paddle/fluid/API.spec +++ b/paddle/fluid/API.spec @@ -117,7 +117,7 @@ paddle.fluid.layers.sequence_slice (ArgSpec(args=['input', 'offset', 'length', ' paddle.fluid.layers.dropout (ArgSpec(args=['x', 'dropout_prob', 'is_test', 'seed', 'name', 'dropout_implementation'], varargs=None, keywords=None, defaults=(False, None, None, 'downgrade_in_infer')), ('document', 'f1dd22f7351f7f9853212958e0d8aa7a')) paddle.fluid.layers.split (ArgSpec(args=['input', 'num_or_sections', 'dim', 'name'], varargs=None, keywords=None, defaults=(-1, None)), ('document', '59b28903ce8fb6a7e3861ff355592eb4')) paddle.fluid.layers.ctc_greedy_decoder (ArgSpec(args=['input', 'blank', 'name'], varargs=None, keywords=None, defaults=(None,)), ('document', '2bc3a59efa9d52b628a6255422d9f0e8')) -paddle.fluid.layers.edit_distance (ArgSpec(args=['input', 'label', 'normalized', 'ignored_tokens'], varargs=None, keywords=None, defaults=(True, None)), ('document', '97f0262f97602644c83142789d784571')) +paddle.fluid.layers.edit_distance (ArgSpec(args=['input', 'label', 'normalized', 'ignored_tokens'], varargs=None, keywords=None, defaults=(True, None)), ('document', 'f2c252aa2f83f8e503ffaf79668eaa28')) paddle.fluid.layers.l2_normalize (ArgSpec(args=['x', 'axis', 'epsilon', 'name'], varargs=None, keywords=None, defaults=(1e-12, None)), ('document', '35c6a241bcc1a1fc89508860d82ad62b')) paddle.fluid.layers.matmul (ArgSpec(args=['x', 'y', 'transpose_x', 'transpose_y', 'alpha', 'name'], varargs=None, keywords=None, defaults=(False, False, 1.0, None)), ('document', 'aa27ca4405e70c6a733cb9806a76af30')) paddle.fluid.layers.topk (ArgSpec(args=['input', 'k', 'name'], varargs=None, keywords=None, defaults=(None,)), ('document', '2a1e9ea041ff4d6a9948bb8d03b743ea')) diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index a5dd8a6f08..9bc4099613 100644 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -5295,7 +5295,7 @@ def topk(input, k, name=None): def edit_distance(input, label, normalized=True, ignored_tokens=None): """ - EditDistance operator computes the edit distances between a batch of + Edit distance operator computes the edit distances between a batch of hypothesis strings and their references. Edit distance, also called Levenshtein distance, measures how dissimilar two strings are by counting the minimum number of operations to transform one string into anthor. @@ -5331,9 +5331,28 @@ def edit_distance(input, label, normalized=True, ignored_tokens=None): Examples: .. code-block:: python - x = fluid.layers.data(name='x', shape=[1], dtype='float32') - y = fluid.layers.data(name='y', shape=[1], dtype='float32') - cost = fluid.layers.edit_distance(input=x,label=y) + import paddle.fluid as fluid + x = fluid.layers.data(name='x', shape=[1], dtype='int64') + y = fluid.layers.data(name='y', shape=[1], dtype='int64') + cost, _ = fluid.layers.edit_distance(input=x, label=y) + + cpu = fluid.core.CPUPlace() + exe = fluid.Executor(cpu) + exe.run(fluid.default_startup_program()) + + import numpy + x_ = numpy.random.randint(5, size=(2, 1)).astype('int64') + y_ = numpy.random.randint(5, size=(2, 1)).astype('int64') + + print(x_) + print(y_) + + x = fluid.create_lod_tensor(x_, [[2]], cpu) + y = fluid.create_lod_tensor(y_, [[2]], cpu) + + outs = exe.run(feed={'x':x, 'y':y}, fetch_list=[cost.name]) + + print(outs) """ helper = LayerHelper("edit_distance", **locals()) -- GitLab