提交 7c42e5de 编写于 作者: F fengjiayi 提交者: yuyang18

Polish RandomCropOp

上级 632108dc
...@@ -74,8 +74,8 @@ namespace ops = paddle::operators; ...@@ -74,8 +74,8 @@ namespace ops = paddle::operators;
namespace f = paddle::framework; namespace f = paddle::framework;
REGISTER_OPERATOR(random_crop, ops::RandomCropOp, ops::RandomCropOpMaker, REGISTER_OPERATOR(random_crop, ops::RandomCropOp, ops::RandomCropOpMaker,
ops::RandomCropOpInferShape, f::EmptyGradOpMaker); ops::RandomCropOpInferShape, f::EmptyGradOpMaker);
template <typename T> template <typename T>
using Kernel = ops::RandomCropKernel<paddle::platform::CPUDeviceContext, T>; using Kernel = ops::RandomCropKernel<paddle::platform::CPUDeviceContext, T>;
REGISTER_OP_CPU_KERNEL(random_crop, Kernel<float>, Kernel<int>, Kernel<double>, REGISTER_OP_CPU_KERNEL(random_crop, Kernel<float>, Kernel<int>, Kernel<double>,
Kernel<uint8_t>, Kernel<int16_t>); Kernel<uint8_t>, Kernel<int16_t>);
// Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "paddle/fluid/operators/random_crop_op.h"
template <typename T>
using Kernel = ops::RandomCropKernel<paddle::platform::CUDADeviceContext, T>;
REGISTER_OP_CUDA_KERNEL(random_crop, Kernel<float>, Kernel<int>, Kernel<double>,
Kernel<uint8_t>, Kernel<int16_t>);
...@@ -3990,15 +3990,16 @@ def upsampling_bilinear2d(input, out_shape=None, scale=None, name=None): ...@@ -3990,15 +3990,16 @@ def upsampling_bilinear2d(input, out_shape=None, scale=None, name=None):
return out return out
def random_crop(input, shape, seed=0): def random_crop(input, shape, seed=1):
helper = LayerHelper("random_crop", **locals()) helper = LayerHelper("random_crop", **locals())
dtype = helper.input_dtype() dtype = helper.input_dtype()
out = helper.create_tmp_variable(dtype) out = helper.create_tmp_variable(dtype)
if isinstance(seed, int): if isinstance(seed, int):
seed_value = seed
seed = helper.create_global_variable( seed = helper.create_global_variable(
persistable=True, shape=[1], dtype="int32") persistable=True, shape=[1], dtype="int32")
helper.set_variable_initializer( helper.set_variable_initializer(
var=seed, initializer=Constant(value=seed)) var=seed, initializer=Constant(value=seed_value))
elif not isinstance(seed, Variable): elif not isinstance(seed, Variable):
raise ValueError("'seed' must be a Variable or an int.") raise ValueError("'seed' must be a Variable or an int.")
seed_out = helper.create_tmp_variable(dtype="int32") seed_out = helper.create_tmp_variable(dtype="int32")
......
...@@ -336,8 +336,6 @@ class OpTest(unittest.TestCase): ...@@ -336,8 +336,6 @@ class OpTest(unittest.TestCase):
actual_t = np.array(actual) actual_t = np.array(actual)
expect = self.outputs[out_name] expect = self.outputs[out_name]
expect_t = expect[0] if isinstance(expect, tuple) else expect expect_t = expect[0] if isinstance(expect, tuple) else expect
import pdb
pdb.set_trace()
self.assertTrue( self.assertTrue(
np.allclose( np.allclose(
actual_t, expect_t, atol=atol), actual_t, expect_t, atol=atol),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册