From 3df6d99f3f23a9bfd613cdba83f0c9d17f617936 Mon Sep 17 00:00:00 2001 From: "A. Unique TensorFlower" Date: Thu, 16 May 2019 17:14:23 -0700 Subject: [PATCH] Adds the TFLite version string to the ObjC library. PiperOrigin-RevId: 248632089 --- .../experimental/objc/apis/TFLTensorFlowLite.h | 12 ++++++++++++ .../experimental/objc/sources/TFLInterpreter.mm | 3 +++ .../objc/tests/TFLInterpreterTests.m | 17 ++++++++++++----- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/tensorflow/lite/experimental/objc/apis/TFLTensorFlowLite.h b/tensorflow/lite/experimental/objc/apis/TFLTensorFlowLite.h index ad1ffe6845f..7ba3f9782be 100644 --- a/tensorflow/lite/experimental/objc/apis/TFLTensorFlowLite.h +++ b/tensorflow/lite/experimental/objc/apis/TFLTensorFlowLite.h @@ -12,7 +12,19 @@ // See the License for the specific language governing permissions and // limitations under the License. +#import + #import "TFLInterpreter.h" #import "TFLInterpreterOptions.h" #import "TFLQuantizationParameters.h" #import "TFLTensor.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * A string describing the semantic versioning information for the TensorFlow Lite runtime. Is an + * empty string if the version could not be determined. + */ +FOUNDATION_EXPORT NSString *const TFLVersion; + +NS_ASSUME_NONNULL_END diff --git a/tensorflow/lite/experimental/objc/sources/TFLInterpreter.mm b/tensorflow/lite/experimental/objc/sources/TFLInterpreter.mm index 1c8b7f976ec..5208d3cafdf 100644 --- a/tensorflow/lite/experimental/objc/sources/TFLInterpreter.mm +++ b/tensorflow/lite/experimental/objc/sources/TFLInterpreter.mm @@ -24,6 +24,9 @@ NS_ASSUME_NONNULL_BEGIN +FOUNDATION_EXPORT NSString *const TFLVersion = + TFL_Version() == NULL ? @"" : [NSString stringWithUTF8String:TFL_Version()]; + /** * Error reporter for TFLInterpreter. * diff --git a/tensorflow/lite/experimental/objc/tests/TFLInterpreterTests.m b/tensorflow/lite/experimental/objc/tests/TFLInterpreterTests.m index eefa9b9f058..f9bebcfbaa8 100644 --- a/tensorflow/lite/experimental/objc/tests/TFLInterpreterTests.m +++ b/tensorflow/lite/experimental/objc/tests/TFLInterpreterTests.m @@ -12,16 +12,18 @@ // See the License for the specific language governing permissions and // limitations under the License. -#import "tensorflow/lite/experimental/objc/apis/TFLInterpreter.h" +#import "tensorflow/lite/experimental/objc/apis/TFLTensorFlowLite.h" #import -#import "tensorflow/lite/experimental/objc/apis/TFLInterpreterOptions.h" -#import "tensorflow/lite/experimental/objc/apis/TFLQuantizationParameters.h" -#import "tensorflow/lite/experimental/objc/apis/TFLTensor.h" - NS_ASSUME_NONNULL_BEGIN +/** + * Regular expression for TensorFlow Lite runtime version string, e.g. "1.14.0", "0.1.2-alpha.1", + * "0.3.4-beta2", "1.14.0-rc.3". + */ +static NSString *const kTFLVersionRegex = @"^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?$"; + /** Float model resource name. */ static NSString *const kAddFloatModelResourceName = @"add"; @@ -91,6 +93,11 @@ static const float kTestAccuracy = 1E-5F; #pragma mark - Tests +- (void)testTFLVersion { + NSRange range = [TFLVersion rangeOfString:kTFLVersionRegex options:NSRegularExpressionSearch]; + XCTAssertNotEqual(range.location, NSNotFound); +} + - (void)testSuccessfulFullRunAddFloatModel { // Shape for both input and output tensor. NSMutableArray *shape = [NSMutableArray arrayWithCapacity:kAddModelTensorRank];