Browse Source

add tf.bitwise.left_shift unit test #614.

tags/v0.20
Oceania2018 5 years ago
parent
commit
925b3cbbd0
3 changed files with 101 additions and 0 deletions
  1. +25
    -0
      src/TensorFlowNET.Core/APIs/tf.bitwise.cs
  2. +50
    -0
      src/TensorFlowNET.Core/Operations/bitwise_ops.cs
  3. +26
    -0
      test/TensorFlowNET.UnitTest/TF_API/BitwiseApiTest.cs

+ 25
- 0
src/TensorFlowNET.Core/APIs/tf.bitwise.cs View File

@@ -0,0 +1,25 @@
/*****************************************************************************
Copyright 2020 The TensorFlow.NET 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.
******************************************************************************/

using Tensorflow.Operations;

namespace Tensorflow
{
public partial class tensorflow
{
public bitwise_ops bitwise = new bitwise_ops();
}
}

+ 50
- 0
src/TensorFlowNET.Core/Operations/bitwise_ops.cs View File

@@ -0,0 +1,50 @@
/*****************************************************************************
Copyright 2020 Haiping Chen. 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.
******************************************************************************/

using System;
using System.Collections.Generic;
using System.Text;
using static Tensorflow.Binding;

namespace Tensorflow.Operations
{
public class bitwise_ops
{
/// <summary>
/// Elementwise computes the bitwise left-shift of `x` and `y`.
/// https://www.tensorflow.org/api_docs/python/tf/bitwise/left_shift
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="name"></param>
/// <returns></returns>
public Tensor left_shift(Tensor x, Tensor y, string name = null)
{
if (tf.Context.executing_eagerly())
{
var results = tf.Runner.TFE_FastPathExecute(tf.Context, tf.Context.DeviceName,
"LeftShift", name,
null,
x, y);

return results[0];
}

var _op = tf.OpDefLib._apply_op_helper("LeftShift", name, args: new { x, y });
return _op.output;
}
}
}

+ 26
- 0
test/TensorFlowNET.UnitTest/TF_API/BitwiseApiTest.cs View File

@@ -0,0 +1,26 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tensorflow;
using static Tensorflow.Binding;

namespace TensorFlowNET.UnitTest.TF_API
{
[TestClass]
public class BitwiseApiTest : TFNetApiTest
{
Tensor lhs = tf.constant(new int[] { -1, -5, -3, -14 });
Tensor rhs = tf.constant(new int[] { 5, 0, 7, 11 });

[TestMethod]
public void LeftShift()
{
var left_shift_result = tf.bitwise.left_shift(lhs, rhs);
var expected = new int[] { -32, -5, -384, -28672 };
var actual = left_shift_result.ToArray<int>();
Assert.IsTrue(Enumerable.SequenceEqual(expected, actual));
}
}
}

Loading…
Cancel
Save