REGISTER_KERNEL_BUILDER(Name("DebugGradientIdentity") \
.Device(DEVICE_GPU) \
.TypeConstraint<type>("T"), \
+ IdentityOp); \
+ REGISTER_KERNEL_BUILDER(Name("PlaceholderWithDefault") \
+ .Device(DEVICE_GPU) \
+ .TypeConstraint<type>("dtype"), \
IdentityOp)
TF_CALL_NUMBER_TYPES_NO_INT32(REGISTER_GPU_KERNEL);
// A special GPU kernel for int32 and bool.
// TODO(b/25387198): Also enable int32 in device memory. This kernel
// registration requires all int32 inputs and outputs to be in host memory.
-#define REGISTER_GPU_HOST_KERNEL(type) \
- REGISTER_KERNEL_BUILDER(Name("Identity") \
- .Device(DEVICE_GPU) \
- .HostMemory("input") \
- .HostMemory("output") \
- .TypeConstraint<type>("T"), \
- IdentityOp); \
- REGISTER_KERNEL_BUILDER(Name("RefIdentity") \
- .Device(DEVICE_GPU) \
- .HostMemory("input") \
- .HostMemory("output") \
- .TypeConstraint<type>("T"), \
+#define REGISTER_GPU_HOST_KERNEL(type) \
+ REGISTER_KERNEL_BUILDER(Name("Identity") \
+ .Device(DEVICE_GPU) \
+ .HostMemory("input") \
+ .HostMemory("output") \
+ .TypeConstraint<type>("T"), \
+ IdentityOp); \
+ REGISTER_KERNEL_BUILDER(Name("RefIdentity") \
+ .Device(DEVICE_GPU) \
+ .HostMemory("input") \
+ .HostMemory("output") \
+ .TypeConstraint<type>("T"), \
+ IdentityOp); \
+ REGISTER_KERNEL_BUILDER(Name("PlaceholderWithDefault") \
+ .Device(DEVICE_GPU) \
+ .HostMemory("input") \
+ .HostMemory("output") \
+ .TypeConstraint<type>("dtype"), \
IdentityOp)
REGISTER_GPU_HOST_KERNEL(int32);
class PlaceholderWithDefaultTest(test.TestCase):
def testFullShape(self):
- with self.test_session():
+ with self.test_session(force_gpu=test_util.is_gpu_available()):
p = array_ops.placeholder_with_default([[2, 2], [2, 2]], shape=[2, 2])
a = array_ops.identity(p)
self.assertAllEqual([[2, 2], [2, 2]], a.eval())
a.eval(feed_dict={p: [[6, 6, 6], [6, 6, 6]]})
def testPartialShape(self):
- with self.test_session():
+ with self.test_session(force_gpu=test_util.is_gpu_available()):
p = array_ops.placeholder_with_default([1, 2, 3], shape=[None])
a = array_ops.identity(p)
self.assertAllEqual([1, 2, 3], a.eval())
a.eval(feed_dict={p: [[2, 2], [2, 2]]})
def testNoShape(self):
- with self.test_session():
+ with self.test_session(force_gpu=test_util.is_gpu_available()):
p = array_ops.placeholder_with_default([17], shape=None)
a = array_ops.identity(p)
self.assertAllEqual([17], a.eval())
[[3, 3], [3, 3]], a.eval(feed_dict={p: [[3, 3], [3, 3]]}))
def testGradient(self):
- with self.test_session():
+ with self.test_session(force_gpu=test_util.is_gpu_available()):
x = array_ops.placeholder(dtypes_lib.float32, [5, 7])
y = array_ops.placeholder_with_default(x, None)
err = gradient_checker.compute_gradient_error(x, [5, 7], y, [5, 7])
self.assertLess(err, 1e-3)
+
if __name__ == "__main__":
test.main()