diff --git a/tensorflow/contrib/ios_examples/camera/camera_example.xcodeproj/project.pbxproj b/tensorflow/contrib/ios_examples/camera/camera_example.xcodeproj/project.pbxproj deleted file mode 100644 index e9d783e49da..00000000000 --- a/tensorflow/contrib/ios_examples/camera/camera_example.xcodeproj/project.pbxproj +++ /dev/null @@ -1,431 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 591D3EC51CFF7F130059011C /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 591D3EC41CFF7F120059011C /* AVFoundation.framework */; }; - 591D3ECB1CFF7F5F0059011C /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 591D3ECA1CFF7F5F0059011C /* CoreMedia.framework */; }; - 591D3ECD1CFF7F9F0059011C /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 591D3ECC1CFF7F9F0059011C /* AssetsLibrary.framework */; }; - 591D3ECF1CFF7FCE0059011C /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 591D3ECE1CFF7FCE0059011C /* ImageIO.framework */; }; - 591D3ED21CFF85C30059011C /* ios_image_load.mm in Sources */ = {isa = PBXBuildFile; fileRef = 591D3ED11CFF85C30059011C /* ios_image_load.mm */; }; - 591D3ED51CFF85FD0059011C /* tensorflow_utils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 591D3ED31CFF85FD0059011C /* tensorflow_utils.mm */; }; - 591D3EDB1CFFA83A0059011C /* imagenet_comp_graph_label_strings.txt in Resources */ = {isa = PBXBuildFile; fileRef = 591D3ED81CFFA83A0059011C /* imagenet_comp_graph_label_strings.txt */; }; - 591D3EDC1CFFA83A0059011C /* tensorflow_inception_graph.pb in Resources */ = {isa = PBXBuildFile; fileRef = 591D3ED91CFFA83A0059011C /* tensorflow_inception_graph.pb */; }; - 591D3EDF1CFFAD230059011C /* libprotobuf-lite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 591D3EDD1CFFAD230059011C /* libprotobuf-lite.a */; }; - 591D3EE01CFFAD230059011C /* libprotobuf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 591D3EDE1CFFAD230059011C /* libprotobuf.a */; }; - 592FF8B918ECBD7600C164F8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 592FF8B818ECBD7600C164F8 /* Foundation.framework */; }; - 592FF8BB18ECBD7600C164F8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 592FF8BA18ECBD7600C164F8 /* CoreGraphics.framework */; }; - 592FF90218ECC66200C164F8 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 592FF90118ECC66200C164F8 /* main.mm */; }; - 592FF90D18EDD0DA00C164F8 /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 592FF90A18EDD0DA00C164F8 /* MainStoryboard_iPhone.storyboard */; }; - 592FF92518EE240200C164F8 /* CameraExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 592FF92218EE240200C164F8 /* CameraExampleAppDelegate.m */; }; - 592FF92618EE240200C164F8 /* CameraExampleViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 592FF92418EE240200C164F8 /* CameraExampleViewController.mm */; }; - 5993C7721D5D4E980048CE6A /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5993C7711D5D4E980048CE6A /* Accelerate.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 591D3EC41CFF7F120059011C /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; }; - 591D3EC61CFF7F370059011C /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; }; - 591D3EC81CFF7F500059011C /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/CoreImage.framework; sourceTree = DEVELOPER_DIR; }; - 591D3ECA1CFF7F5F0059011C /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/CoreMedia.framework; sourceTree = DEVELOPER_DIR; }; - 591D3ECC1CFF7F9F0059011C /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/AssetsLibrary.framework; sourceTree = DEVELOPER_DIR; }; - 591D3ECE1CFF7FCE0059011C /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; - 591D3ED01CFF85C30059011C /* ios_image_load.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ios_image_load.h; sourceTree = SOURCE_ROOT; }; - 591D3ED11CFF85C30059011C /* ios_image_load.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ios_image_load.mm; sourceTree = SOURCE_ROOT; }; - 591D3ED31CFF85FD0059011C /* tensorflow_utils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = tensorflow_utils.mm; sourceTree = SOURCE_ROOT; }; - 591D3ED41CFF85FD0059011C /* tensorflow_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tensorflow_utils.h; sourceTree = SOURCE_ROOT; }; - 591D3ED81CFFA83A0059011C /* imagenet_comp_graph_label_strings.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = imagenet_comp_graph_label_strings.txt; sourceTree = ""; }; - 591D3ED91CFFA83A0059011C /* tensorflow_inception_graph.pb */ = {isa = PBXFileReference; lastKnownFileType = file; path = tensorflow_inception_graph.pb; sourceTree = ""; }; - 591D3EDD1CFFAD230059011C /* libprotobuf-lite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libprotobuf-lite.a"; path = "../../makefile/gen/protobuf_ios/lib/libprotobuf-lite.a"; sourceTree = ""; }; - 591D3EDE1CFFAD230059011C /* libprotobuf.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libprotobuf.a; path = ../../makefile/gen/protobuf_ios/lib/libprotobuf.a; sourceTree = ""; }; - 592FF8B518ECBD7600C164F8 /* CameraExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CameraExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 592FF8B818ECBD7600C164F8 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 592FF8BA18ECBD7600C164F8 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 592FF90118ECC66200C164F8 /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = SOURCE_ROOT; }; - 592FF90318ECCB8300C164F8 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; }; - 592FF90B18EDD0DA00C164F8 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = MainStoryboard_iPhone.storyboard; sourceTree = ""; }; - 592FF92118EE240200C164F8 /* CameraExampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CameraExampleAppDelegate.h; sourceTree = SOURCE_ROOT; }; - 592FF92218EE240200C164F8 /* CameraExampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CameraExampleAppDelegate.m; sourceTree = SOURCE_ROOT; }; - 592FF92318EE240200C164F8 /* CameraExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CameraExampleViewController.h; sourceTree = SOURCE_ROOT; }; - 592FF92418EE240200C164F8 /* CameraExampleViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CameraExampleViewController.mm; sourceTree = SOURCE_ROOT; }; - 5993C7711D5D4E980048CE6A /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = DEVELOPER_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 592FF8B218ECBD7600C164F8 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 5993C7721D5D4E980048CE6A /* Accelerate.framework in Frameworks */, - 591D3EDF1CFFAD230059011C /* libprotobuf-lite.a in Frameworks */, - 591D3EE01CFFAD230059011C /* libprotobuf.a in Frameworks */, - 591D3ECF1CFF7FCE0059011C /* ImageIO.framework in Frameworks */, - 591D3ECD1CFF7F9F0059011C /* AssetsLibrary.framework in Frameworks */, - 591D3ECB1CFF7F5F0059011C /* CoreMedia.framework in Frameworks */, - 591D3EC51CFF7F130059011C /* AVFoundation.framework in Frameworks */, - 592FF8BB18ECBD7600C164F8 /* CoreGraphics.framework in Frameworks */, - 592FF8B918ECBD7600C164F8 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 591D3ED61CFFA83A0059011C /* data */ = { - isa = PBXGroup; - children = ( - 591D3ED81CFFA83A0059011C /* imagenet_comp_graph_label_strings.txt */, - 591D3ED91CFFA83A0059011C /* tensorflow_inception_graph.pb */, - ); - path = data; - sourceTree = SOURCE_ROOT; - }; - 592FF8AA18ECBD3600C164F8 = { - isa = PBXGroup; - children = ( - 592FF8BE18ECBD7600C164F8 /* CameraExample */, - 592FF8B718ECBD7600C164F8 /* Frameworks */, - 592FF8B618ECBD7600C164F8 /* Products */, - ); - sourceTree = ""; - }; - 592FF8B618ECBD7600C164F8 /* Products */ = { - isa = PBXGroup; - children = ( - 592FF8B518ECBD7600C164F8 /* CameraExample.app */, - ); - name = Products; - sourceTree = ""; - }; - 592FF8B718ECBD7600C164F8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 5993C7711D5D4E980048CE6A /* Accelerate.framework */, - 591D3EDD1CFFAD230059011C /* libprotobuf-lite.a */, - 591D3EDE1CFFAD230059011C /* libprotobuf.a */, - 591D3ECE1CFF7FCE0059011C /* ImageIO.framework */, - 591D3ECC1CFF7F9F0059011C /* AssetsLibrary.framework */, - 591D3ECA1CFF7F5F0059011C /* CoreMedia.framework */, - 591D3EC81CFF7F500059011C /* CoreImage.framework */, - 591D3EC61CFF7F370059011C /* CoreFoundation.framework */, - 591D3EC41CFF7F120059011C /* AVFoundation.framework */, - 592FF8B818ECBD7600C164F8 /* Foundation.framework */, - 592FF8BA18ECBD7600C164F8 /* CoreGraphics.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 592FF8BE18ECBD7600C164F8 /* CameraExample */ = { - isa = PBXGroup; - children = ( - 591D3ED61CFFA83A0059011C /* data */, - 592FF90718EDD0DA00C164F8 /* en.lproj */, - 592FF92118EE240200C164F8 /* CameraExampleAppDelegate.h */, - 592FF92218EE240200C164F8 /* CameraExampleAppDelegate.m */, - 592FF92318EE240200C164F8 /* CameraExampleViewController.h */, - 592FF92418EE240200C164F8 /* CameraExampleViewController.mm */, - 592FF90318ECCB8300C164F8 /* Info.plist */, - 591D3ED01CFF85C30059011C /* ios_image_load.h */, - 591D3ED11CFF85C30059011C /* ios_image_load.mm */, - 592FF90118ECC66200C164F8 /* main.mm */, - 591D3ED31CFF85FD0059011C /* tensorflow_utils.mm */, - 591D3ED41CFF85FD0059011C /* tensorflow_utils.h */, - ); - name = CameraExample; - path = SimpleExample; - sourceTree = ""; - }; - 592FF90718EDD0DA00C164F8 /* en.lproj */ = { - isa = PBXGroup; - children = ( - 592FF90A18EDD0DA00C164F8 /* MainStoryboard_iPhone.storyboard */, - ); - path = en.lproj; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 592FF8B418ECBD7600C164F8 /* CameraExample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 592FF8E318ECBD7600C164F8 /* Build configuration list for PBXNativeTarget "CameraExample" */; - buildPhases = ( - 592FF8B118ECBD7600C164F8 /* Sources */, - 592FF8B218ECBD7600C164F8 /* Frameworks */, - 592FF8B318ECBD7600C164F8 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = CameraExample; - productName = SimpleExample; - productReference = 592FF8B518ECBD7600C164F8 /* CameraExample.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 592FF8AB18ECBD3600C164F8 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0720; - }; - buildConfigurationList = 592FF8AE18ECBD3600C164F8 /* Build configuration list for PBXProject "camera_example" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 592FF8AA18ECBD3600C164F8; - productRefGroup = 592FF8B618ECBD7600C164F8 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 592FF8B418ECBD7600C164F8 /* CameraExample */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 592FF8B318ECBD7600C164F8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 591D3EDC1CFFA83A0059011C /* tensorflow_inception_graph.pb in Resources */, - 592FF90D18EDD0DA00C164F8 /* MainStoryboard_iPhone.storyboard in Resources */, - 591D3EDB1CFFA83A0059011C /* imagenet_comp_graph_label_strings.txt in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 592FF8B118ECBD7600C164F8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 592FF90218ECC66200C164F8 /* main.mm in Sources */, - 591D3ED21CFF85C30059011C /* ios_image_load.mm in Sources */, - 592FF92618EE240200C164F8 /* CameraExampleViewController.mm in Sources */, - 592FF92518EE240200C164F8 /* CameraExampleAppDelegate.m in Sources */, - 591D3ED51CFF85FD0059011C /* tensorflow_utils.mm in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 592FF90A18EDD0DA00C164F8 /* MainStoryboard_iPhone.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 592FF90B18EDD0DA00C164F8 /* en */, - ); - name = MainStoryboard_iPhone.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 592FF8AF18ECBD3600C164F8 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - ONLY_ACTIVE_ARCH = YES; - }; - name = Debug; - }; - 592FF8B018ECBD3600C164F8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - }; - name = Release; - }; - 592FF8DF18ECBD7600C164F8 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "compiler-default"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = ""; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../../makefile/gen/proto", - "$(SRCROOT)/../../makefile/downloads/eigen", - "$(SRCROOT)/../../makefile/downloads", - "$(SRCROOT)/../../makefile/downloads/protobuf/src/", - "$(SRCROOT)/../../../..", - ); - INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LIBRARY_SEARCH_PATHS = ( - "$(SRCROOT)/../../makefile/gen/lib", - "$(SRCROOT)/../../makefile/gen/protobuf_ios/lib", - ); - ONLY_ACTIVE_ARCH = NO; - OTHER_LDFLAGS = ( - "-force_load", - "$(SRCROOT)/../../makefile/gen/lib/libtensorflow-core.a", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.google.CameraExample; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = "arm64 armv7 armv7s"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - 592FF8E018ECBD7600C164F8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "compiler-default"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = ""; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../../makefile/gen/proto", - "$(SRCROOT)/../../makefile/downloads/eigen", - "$(SRCROOT)/../../makefile/downloads", - "$(SRCROOT)/../../makefile/downloads/protobuf/src/", - "$(SRCROOT)/../../../..", - ); - INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LIBRARY_SEARCH_PATHS = ( - "$(SRCROOT)/../../makefile/gen/lib", - "$(SRCROOT)/../../makefile/gen/protobuf_ios/lib", - ); - ONLY_ACTIVE_ARCH = NO; - OTHER_LDFLAGS = ( - "-force_load", - "$(SRCROOT)/../../makefile/gen/lib/libtensorflow-core.a", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.google.CameraExample; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VALID_ARCHS = "arm64 armv7 armv7s"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 592FF8AE18ECBD3600C164F8 /* Build configuration list for PBXProject "camera_example" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 592FF8AF18ECBD3600C164F8 /* Debug */, - 592FF8B018ECBD3600C164F8 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 592FF8E318ECBD7600C164F8 /* Build configuration list for PBXNativeTarget "CameraExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 592FF8DF18ECBD7600C164F8 /* Debug */, - 592FF8E018ECBD7600C164F8 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 592FF8AB18ECBD3600C164F8 /* Project object */; -} diff --git a/tensorflow/contrib/ios_examples/.gitignore b/tensorflow/examples/ios/.gitignore similarity index 100% rename from tensorflow/contrib/ios_examples/.gitignore rename to tensorflow/examples/ios/.gitignore diff --git a/tensorflow/contrib/ios_examples/README.md b/tensorflow/examples/ios/README.md similarity index 68% rename from tensorflow/contrib/ios_examples/README.md rename to tensorflow/examples/ios/README.md index 6bac33c0ec3..9832399d721 100644 --- a/tensorflow/contrib/ios_examples/README.md +++ b/tensorflow/examples/ios/README.md @@ -2,15 +2,15 @@ This folder contains examples of how to build applications for iOS devices using TensorFlow. -## Building the Examples +## Running the Samples using CocoaPod + - You'll need Xcode 7.3 or later. - - You'll need Xcode 7.3 or later, with the command-line tools installed. + - There are currently three examples: simple, benchmark, and camera. For now, + you can download the sample code by cloning the main tensorflow repository + (we are planning to make the samples available as a separate repository + later). - - Follow the instructions at - [tensorflow/contrib/makefile](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/makefile) - under "iOS" to compile a static library containing the core TensorFlow code. - - - From the root of the Tensorflow folder, download + - From the root of the tensorflow folder, download [Inception v1](https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip), and extract the label and graph files into the data folders inside both the simple and camera examples: @@ -25,8 +25,62 @@ cp ~/graphs/inception5h/* tensorflow/contrib/ios_examples/camera/data/ cp ~/graphs/inception5h/* tensorflow/contrib/ios_examples/simple/data/ ``` - - Load the Xcode project inside the `simple` subfolder, and press Command-R to - build and run it on the simulator or your connected device. + - Change directory to one of the samples, download the TensorFlow-experimental + pod, and open the Xcode workspace. Observe: installing the pod can take a + long time since it is big (~450MB). For example, if you want to run the + simple example, then: +```bash +cd tensorflow/contrib/ios_examples/simple +pod install +open tf_simple_example.xcworkspace # obs, not the .xcodeproj directory +``` + + - Run the simple app in the simulator. You should see a single-screen app with + a "Run Model" button. Tap that, and you should see some debug output appear + below indicating that the example Grace Hopper image in directory data has + been analyzed, with a military uniform recognized. + + - Run the other samples using the same process. The camera example requires a + real device connected. Once you build and run that, you should get a live + camera view that you can point at objects to get real-time recognition + results. + +### Troubleshooting + + - Make sure you use the TensorFlow-experimental pod (and not TensorFlow). + + - The TensorFlow-experimental pod is current about ~450MB. The reason it is + so big is because we are bundling multiple platforms, and the pod includes + all TensorFlow functionality (e.g. operations). This is convenient during + development, but see below section on how you can build your own custom + TensorFlow library to reduce the size. + +### Creating Your own App + + - Create your own app using Xcode then add a file named Podfile at the project + root directory with the following content: +```bash +target 'YourProjectName' + pod 'TensorFlow-experimental' +``` + + - Then you run ```pod install``` to download and install the + TensorFlow-experimental pod, and finaly perform + ```open YourProjectName.xcworkspace``` and add your code. + + - In your apps "Build Settings", make sure to add $(inherited) to sections + "Other Linker Flags", and "Header Search Paths". + + - That's it. If you want to create your custom TensorFlow iOS library, for + example to reduce binary footprint, see below section. + +## Building the TensorFlow iOS libraries from source + + - You'll need Xcode 7.3 or later, with the command-line tools installed. + + - Follow the instructions at + [tensorflow/contrib/makefile](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/makefile) + under "iOS" to compile a static library containing the core TensorFlow code. - You should see a single-screen app with a "Run Model" button. Tap that, and you should see some debug output appear below indicating that the example @@ -36,8 +90,8 @@ cp ~/graphs/inception5h/* tensorflow/contrib/ios_examples/simple/data/ open up the Xcode project in the `camera` subfolder. Once you build and run that, you should get a live camera view that you can point at objects to get real-time recognition results. - -## Troubleshooting + +### Troubleshooting If you're hitting problems, here's a checklist of common things to investigate: @@ -52,7 +106,7 @@ If you're hitting problems, here's a checklist of common things to investigate: linked in properly. You'll have to make sure your project uses force_load, as described below. -## Creating your Own App +### Creating your Own App from your source libraries You'll need to update various settings in your app to link against TensorFlow. You can view them in the example projects, but here's a full @@ -96,7 +150,7 @@ rundown: `-all_load` to avoid issues with Objective-C categories in static libraries, you may be able to replace it with the `-ObjC` flag. -## Reducing the binary size +### Reducing the binary size TensorFlow is a comparatively large library for a mobile device, so it will increase the size of your app. Currently on iOS we see around a 11 MB binary @@ -115,17 +169,17 @@ looking at the simple example to examine its size. Here's how you do that: - Once the build's complete, open the Report Navigator and select the logs. - - Near the bottom, you'll see a line saying "Touch tf_ios_makefile_example.app". + - Near the bottom, you'll see a line saying "Touch tf_simple_example.app". - Expand that line using the icon on the right, and copy the first argument to the Touch command. - Go to the terminal, type `ls -lah ` and then paste the path you copied. - - For example it might look like `ls -lah /Users/petewarden/Library/Developer/Xcode/DerivedData/tf_ios_makefile_example-etdbksqytcnzeyfgdwiihzkqpxwr/Build/Products/Debug-iphoneos/tf_ios_makefile_example.app` + - For example it might look like `ls -lah /Users/petewarden/Library/Developer/Xcode/DerivedData/tf_simple_example-etdbksqytcnzeyfgdwiihzkqpxwr/Build/Products/Debug-iphoneos/tf_simple_example.app` - Running this command will show the size of the executable as the - `tf_ios_makefile_example` line. + `tf_simple_example` line. Right now you'll see a size of around 23 MB, since it's including two architectures (armv7 and arm64). As a first step, you should make sure the size diff --git a/tensorflow/contrib/ios_examples/benchmark/AppDelegate.h b/tensorflow/examples/ios/benchmark/AppDelegate.h similarity index 100% rename from tensorflow/contrib/ios_examples/benchmark/AppDelegate.h rename to tensorflow/examples/ios/benchmark/AppDelegate.h diff --git a/tensorflow/contrib/ios_examples/benchmark/AppDelegate.mm b/tensorflow/examples/ios/benchmark/AppDelegate.mm similarity index 100% rename from tensorflow/contrib/ios_examples/benchmark/AppDelegate.mm rename to tensorflow/examples/ios/benchmark/AppDelegate.mm diff --git a/tensorflow/contrib/ios_examples/benchmark/Benchmark-Info.plist b/tensorflow/examples/ios/benchmark/Benchmark-Info.plist similarity index 91% rename from tensorflow/contrib/ios_examples/benchmark/Benchmark-Info.plist rename to tensorflow/examples/ios/benchmark/Benchmark-Info.plist index 8d17162b877..0cdbf28a31b 100644 --- a/tensorflow/contrib/ios_examples/benchmark/Benchmark-Info.plist +++ b/tensorflow/examples/ios/benchmark/Benchmark-Info.plist @@ -5,11 +5,11 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - TF Benchmark + tf_benchmark_example CFBundleExecutable - benchmark + tf_benchmark_example CFBundleIdentifier - Google.Benchmark + com.google.tf_benchmark_example CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/tensorflow/contrib/ios_examples/benchmark/BenchmarkViewController.h b/tensorflow/examples/ios/benchmark/BenchmarkViewController.h similarity index 100% rename from tensorflow/contrib/ios_examples/benchmark/BenchmarkViewController.h rename to tensorflow/examples/ios/benchmark/BenchmarkViewController.h diff --git a/tensorflow/contrib/ios_examples/benchmark/BenchmarkViewController.mm b/tensorflow/examples/ios/benchmark/BenchmarkViewController.mm similarity index 94% rename from tensorflow/contrib/ios_examples/benchmark/BenchmarkViewController.mm rename to tensorflow/examples/ios/benchmark/BenchmarkViewController.mm index 4421c88651e..cab7b36f177 100644 --- a/tensorflow/contrib/ios_examples/benchmark/BenchmarkViewController.mm +++ b/tensorflow/examples/ios/benchmark/BenchmarkViewController.mm @@ -22,17 +22,17 @@ #include #include -#include "google/protobuf/io/coded_stream.h" -#include "google/protobuf/io/zero_copy_stream_impl.h" -#include "google/protobuf/io/zero_copy_stream_impl_lite.h" -#include "google/protobuf/message_lite.h" +//#include "google/protobuf/io/coded_stream.h" +//#include "google/protobuf/io/zero_copy_stream_impl.h" +//#include "google/protobuf/io/zero_copy_stream_impl_lite.h" +//#include "google/protobuf/message_lite.h" #include "tensorflow/core/framework/op_kernel.h" -#include "tensorflow/core/framework/tensor.h" -#include "tensorflow/core/framework/types.pb.h" -#include "tensorflow/core/platform/env.h" -#include "tensorflow/core/platform/logging.h" -#include "tensorflow/core/platform/mutex.h" -#include "tensorflow/core/platform/types.h" +//#include "tensorflow/core/framework/tensor.h" +//#include "tensorflow/core/framework/types.pb.h" +//#include "tensorflow/core/platform/env.h" +//#include "tensorflow/core/platform/logging.h" +//#include "tensorflow/core/platform/mutex.h" +//#include "tensorflow/core/platform/types.h" #include "tensorflow/core/public/session.h" #include "tensorflow/core/util/stat_summarizer.h" @@ -52,7 +52,7 @@ class IfstreamInputStream : public ::google::protobuf::io::CopyingInputStream { return -1; } ifs_.read(static_cast(buffer), size); - return ifs_.gcount(); + return (int)ifs_.gcount(); } private: @@ -85,7 +85,7 @@ static void GetTopN( std::greater>> top_result_pq; - const int count = prediction.size(); + long count = prediction.size(); for (int i = 0; i < count; ++i) { const float value = prediction(i); @@ -178,7 +178,7 @@ tensorflow::Status BenchmarkInference( stat_summarizer->PrintStepStats(); *average_time = total_time / iterations_count; - NSLog(@"Took %f seconds", average_time); + NSLog(@"Took %f seconds", *average_time); return tensorflow::Status::OK(); } diff --git a/tensorflow/contrib/ios_examples/benchmark/BenchmarkViewController.xib b/tensorflow/examples/ios/benchmark/BenchmarkViewController.xib similarity index 100% rename from tensorflow/contrib/ios_examples/benchmark/BenchmarkViewController.xib rename to tensorflow/examples/ios/benchmark/BenchmarkViewController.xib diff --git a/tensorflow/examples/ios/benchmark/Podfile b/tensorflow/examples/ios/benchmark/Podfile new file mode 100644 index 00000000000..e163d56e8d2 --- /dev/null +++ b/tensorflow/examples/ios/benchmark/Podfile @@ -0,0 +1,5 @@ +platform :ios, '8.0' +inhibit_all_warnings! + +target 'tf_benchmark_example' + pod 'TensorFlow-experimental' diff --git a/tensorflow/contrib/ios_examples/benchmark/data/grace_hopper.jpg b/tensorflow/examples/ios/benchmark/data/grace_hopper.jpg similarity index 100% rename from tensorflow/contrib/ios_examples/benchmark/data/grace_hopper.jpg rename to tensorflow/examples/ios/benchmark/data/grace_hopper.jpg diff --git a/tensorflow/contrib/ios_examples/benchmark/ios_image_load.h b/tensorflow/examples/ios/benchmark/ios_image_load.h similarity index 100% rename from tensorflow/contrib/ios_examples/benchmark/ios_image_load.h rename to tensorflow/examples/ios/benchmark/ios_image_load.h diff --git a/tensorflow/contrib/ios_examples/benchmark/ios_image_load.mm b/tensorflow/examples/ios/benchmark/ios_image_load.mm similarity index 100% rename from tensorflow/contrib/ios_examples/benchmark/ios_image_load.mm rename to tensorflow/examples/ios/benchmark/ios_image_load.mm diff --git a/tensorflow/contrib/ios_examples/benchmark/main.mm b/tensorflow/examples/ios/benchmark/main.mm similarity index 100% rename from tensorflow/contrib/ios_examples/benchmark/main.mm rename to tensorflow/examples/ios/benchmark/main.mm diff --git a/tensorflow/contrib/ios_examples/benchmark/benchmark.xcodeproj/project.pbxproj b/tensorflow/examples/ios/benchmark/tf_benchmark_example.xcodeproj/project.pbxproj similarity index 57% rename from tensorflow/contrib/ios_examples/benchmark/benchmark.xcodeproj/project.pbxproj rename to tensorflow/examples/ios/benchmark/tf_benchmark_example.xcodeproj/project.pbxproj index 5cd173b416b..d61b65ba614 100644 --- a/tensorflow/contrib/ios_examples/benchmark/benchmark.xcodeproj/project.pbxproj +++ b/tensorflow/examples/ios/benchmark/tf_benchmark_example.xcodeproj/project.pbxproj @@ -7,33 +7,28 @@ objects = { /* Begin PBXBuildFile section */ - 590E7D881D02091F00DF5523 /* libprotobuf-lite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 590E7D861D02091F00DF5523 /* libprotobuf-lite.a */; }; - 590E7D8A1D0209DD00DF5523 /* libprotobuf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 590E7D871D02091F00DF5523 /* libprotobuf.a */; }; - 5993C7701D5D4E7F0048CE6A /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5993C76F1D5D4E7F0048CE6A /* Accelerate.framework */; }; - 59A3D0011CF4E68100C4259F /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 59A3CFF21CF4E68100C4259F /* AppDelegate.mm */; }; - 59A3D0031CF4E68100C4259F /* grace_hopper.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 59A3CFF51CF4E68100C4259F /* grace_hopper.jpg */; }; - 59A3D0051CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt in Resources */ = {isa = PBXBuildFile; fileRef = 59A3CFF71CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt */; }; - 59A3D0071CF4E68100C4259F /* tensorflow_inception_graph.pb in Resources */ = {isa = PBXBuildFile; fileRef = 59A3CFF91CF4E68100C4259F /* tensorflow_inception_graph.pb */; }; - 59A3D0081CF4E68100C4259F /* ios_image_load.mm in Sources */ = {isa = PBXBuildFile; fileRef = 59A3CFFB1CF4E68100C4259F /* ios_image_load.mm */; }; - 59A3D0091CF4E68100C4259F /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 59A3CFFC1CF4E68100C4259F /* main.mm */; }; - 59A3D00B1CF4E68100C4259F /* BenchmarkViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 59A3CFFF1CF4E68100C4259F /* BenchmarkViewController.mm */; }; - 59A3D00C1CF4E68100C4259F /* BenchmarkViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 59A3D0001CF4E68100C4259F /* BenchmarkViewController.xib */; }; - 59A3D0141CF4E82500C4259F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59A3D0131CF4E82500C4259F /* CoreGraphics.framework */; }; - 59A3D0181CF4E86100C4259F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59A3D0171CF4E86100C4259F /* UIKit.framework */; }; + 1C8BA8FD1EC682E700CCCC8C /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 59A3CFFC1CF4E68100C4259F /* main.mm */; }; + 1C8BA8FE1EC682E700CCCC8C /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 59A3CFF21CF4E68100C4259F /* AppDelegate.mm */; }; + 1C8BA8FF1EC682E700CCCC8C /* BenchmarkViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 59A3CFFF1CF4E68100C4259F /* BenchmarkViewController.mm */; }; + 1C8BA9001EC682E700CCCC8C /* ios_image_load.mm in Sources */ = {isa = PBXBuildFile; fileRef = 59A3CFFB1CF4E68100C4259F /* ios_image_load.mm */; }; + 1C8BA9051EC682E700CCCC8C /* BenchmarkViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 59A3D0001CF4E68100C4259F /* BenchmarkViewController.xib */; }; + 1C8BA9061EC682E700CCCC8C /* imagenet_comp_graph_label_strings.txt in Resources */ = {isa = PBXBuildFile; fileRef = 59A3CFF71CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt */; }; + 1C8BA9071EC682E700CCCC8C /* tensorflow_inception_graph.pb in Resources */ = {isa = PBXBuildFile; fileRef = 59A3CFF91CF4E68100C4259F /* tensorflow_inception_graph.pb */; }; + 1C8BA9081EC682E700CCCC8C /* grace_hopper.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 59A3CFF51CF4E68100C4259F /* grace_hopper.jpg */; }; + 1CB1883E1ECCC0DC00C93EF7 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CB1883D1ECCC0DC00C93EF7 /* CoreGraphics.framework */; }; + 1CB1883F1ECCC10D00C93EF7 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C7AC7FC1ECCBFE400EAE588 /* UIKit.framework */; }; + 1E0EBA4DF4C722C63814B257 /* libPods-tf_benchmark_example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C4FE48552EFB73D066C66E9 /* libPods-tf_benchmark_example.a */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 590E7D861D02091F00DF5523 /* libprotobuf-lite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libprotobuf-lite.a"; path = "../../makefile/gen/protobuf_ios/lib/libprotobuf-lite.a"; sourceTree = ""; }; - 590E7D871D02091F00DF5523 /* libprotobuf.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libprotobuf.a; path = ../../makefile/gen/protobuf_ios/lib/libprotobuf.a; sourceTree = ""; }; - 5911579B1CF4011C00C31E3A /* benchmark.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = benchmark.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 5993C76F1D5D4E7F0048CE6A /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 1C7AC7FC1ECCBFE400EAE588 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 1C8BA90C1EC682E700CCCC8C /* tf_benchmark_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tf_benchmark_example.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1CB1883B1ECCC09A00C93EF7 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; + 1CB1883D1ECCC0DC00C93EF7 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 59A3CFF11CF4E68100C4259F /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 59A3CFF21CF4E68100C4259F /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AppDelegate.mm; sourceTree = ""; }; - 59A3CFF41CF4E68100C4259F /* cropped_panda.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = cropped_panda.jpg; sourceTree = ""; }; 59A3CFF51CF4E68100C4259F /* grace_hopper.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = grace_hopper.jpg; sourceTree = ""; }; - 59A3CFF61CF4E68100C4259F /* imagenet_2012_challenge_label_map_proto.pbtxt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = imagenet_2012_challenge_label_map_proto.pbtxt; sourceTree = ""; }; 59A3CFF71CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = imagenet_comp_graph_label_strings.txt; sourceTree = ""; }; - 59A3CFF81CF4E68100C4259F /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 59A3CFF91CF4E68100C4259F /* tensorflow_inception_graph.pb */ = {isa = PBXFileReference; lastKnownFileType = file; path = tensorflow_inception_graph.pb; sourceTree = ""; }; 59A3CFFA1CF4E68100C4259F /* ios_image_load.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ios_image_load.h; sourceTree = ""; }; 59A3CFFB1CF4E68100C4259F /* ios_image_load.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ios_image_load.mm; sourceTree = ""; }; @@ -42,36 +37,37 @@ 59A3CFFE1CF4E68100C4259F /* BenchmarkViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BenchmarkViewController.h; sourceTree = ""; }; 59A3CFFF1CF4E68100C4259F /* BenchmarkViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BenchmarkViewController.mm; sourceTree = ""; }; 59A3D0001CF4E68100C4259F /* BenchmarkViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BenchmarkViewController.xib; sourceTree = ""; }; - 59A3D0131CF4E82500C4259F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 59A3D0151CF4E83D00C4259F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 59A3D0171CF4E86100C4259F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 5FD1623E64FC0154A67E8DD5 /* Pods-tf_benchmark_example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tf_benchmark_example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-tf_benchmark_example/Pods-tf_benchmark_example.debug.xcconfig"; sourceTree = ""; }; + 8C4FE48552EFB73D066C66E9 /* libPods-tf_benchmark_example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-tf_benchmark_example.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + DB6B3E596779C98202E84711 /* Pods-tf_benchmark_example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tf_benchmark_example.release.xcconfig"; path = "Pods/Target Support Files/Pods-tf_benchmark_example/Pods-tf_benchmark_example.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 591157981CF4011C00C31E3A /* Frameworks */ = { + 1C8BA9011EC682E700CCCC8C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5993C7701D5D4E7F0048CE6A /* Accelerate.framework in Frameworks */, - 590E7D8A1D0209DD00DF5523 /* libprotobuf.a in Frameworks */, - 590E7D881D02091F00DF5523 /* libprotobuf-lite.a in Frameworks */, - 59A3D0181CF4E86100C4259F /* UIKit.framework in Frameworks */, - 59A3D0141CF4E82500C4259F /* CoreGraphics.framework in Frameworks */, + 1CB1883F1ECCC10D00C93EF7 /* UIKit.framework in Frameworks */, + 1CB1883E1ECCC0DC00C93EF7 /* CoreGraphics.framework in Frameworks */, + 1E0EBA4DF4C722C63814B257 /* libPods-tf_benchmark_example.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 2BD56010B574F539C2070A57 /* Pods */ = { + isa = PBXGroup; + children = ( + 5FD1623E64FC0154A67E8DD5 /* Pods-tf_benchmark_example.debug.xcconfig */, + DB6B3E596779C98202E84711 /* Pods-tf_benchmark_example.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; 591157921CF4011C00C31E3A = { isa = PBXGroup; children = ( - 5993C76F1D5D4E7F0048CE6A /* Accelerate.framework */, - 590E7D861D02091F00DF5523 /* libprotobuf-lite.a */, - 590E7D871D02091F00DF5523 /* libprotobuf.a */, - 59A3D0171CF4E86100C4259F /* UIKit.framework */, - 59A3D0151CF4E83D00C4259F /* Foundation.framework */, - 59A3D0131CF4E82500C4259F /* CoreGraphics.framework */, 59A3CFF11CF4E68100C4259F /* AppDelegate.h */, 59A3CFF21CF4E68100C4259F /* AppDelegate.mm */, 59A3CFF31CF4E68100C4259F /* data */, @@ -83,13 +79,15 @@ 59A3CFFF1CF4E68100C4259F /* BenchmarkViewController.mm */, 59A3D0001CF4E68100C4259F /* BenchmarkViewController.xib */, 5911579C1CF4011C00C31E3A /* Products */, + 2BD56010B574F539C2070A57 /* Pods */, + 76A25A27041EB307BDFF0DD1 /* Frameworks */, ); sourceTree = ""; }; 5911579C1CF4011C00C31E3A /* Products */ = { isa = PBXGroup; children = ( - 5911579B1CF4011C00C31E3A /* benchmark.app */, + 1C8BA90C1EC682E700CCCC8C /* tf_benchmark_example.app */, ); name = Products; sourceTree = ""; @@ -97,34 +95,45 @@ 59A3CFF31CF4E68100C4259F /* data */ = { isa = PBXGroup; children = ( - 59A3CFF41CF4E68100C4259F /* cropped_panda.jpg */, 59A3CFF51CF4E68100C4259F /* grace_hopper.jpg */, - 59A3CFF61CF4E68100C4259F /* imagenet_2012_challenge_label_map_proto.pbtxt */, 59A3CFF71CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt */, - 59A3CFF81CF4E68100C4259F /* LICENSE */, 59A3CFF91CF4E68100C4259F /* tensorflow_inception_graph.pb */, ); path = data; sourceTree = ""; }; + 76A25A27041EB307BDFF0DD1 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1CB1883D1ECCC0DC00C93EF7 /* CoreGraphics.framework */, + 1CB1883B1ECCC09A00C93EF7 /* CoreFoundation.framework */, + 1C7AC7FC1ECCBFE400EAE588 /* UIKit.framework */, + 8C4FE48552EFB73D066C66E9 /* libPods-tf_benchmark_example.a */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 5911579A1CF4011C00C31E3A /* benchmark */ = { + 1C8BA8FB1EC682E700CCCC8C /* tf_benchmark_example */ = { isa = PBXNativeTarget; - buildConfigurationList = 591157B21CF4011D00C31E3A /* Build configuration list for PBXNativeTarget "benchmark" */; + buildConfigurationList = 1C8BA9091EC682E700CCCC8C /* Build configuration list for PBXNativeTarget "tf_benchmark_example" */; buildPhases = ( - 591157971CF4011C00C31E3A /* Sources */, - 591157981CF4011C00C31E3A /* Frameworks */, - 591157991CF4011C00C31E3A /* Resources */, + 0388D751057A257A12848245 /* [CP] Check Pods Manifest.lock */, + 1C8BA8FC1EC682E700CCCC8C /* Sources */, + 1C8BA9011EC682E700CCCC8C /* Frameworks */, + 1C8BA9041EC682E700CCCC8C /* Resources */, + 8999A303091D4E86202C2F64 /* [CP] Embed Pods Frameworks */, + A7B4B278BCC417B76A47ABB0 /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); - name = benchmark; + name = tf_benchmark_example; productName = benchmark; - productReference = 5911579B1CF4011C00C31E3A /* benchmark.app */; + productReference = 1C8BA90C1EC682E700CCCC8C /* tf_benchmark_example.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -133,16 +142,10 @@ 591157931CF4011C00C31E3A /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0720; + LastUpgradeCheck = 0830; ORGANIZATIONNAME = Google; - TargetAttributes = { - 5911579A1CF4011C00C31E3A = { - CreatedOnToolsVersion = 7.2; - DevelopmentTeam = 85Z3VXS37U; - }; - }; }; - buildConfigurationList = 591157961CF4011C00C31E3A /* Build configuration list for PBXProject "benchmark" */; + buildConfigurationList = 591157961CF4011C00C31E3A /* Build configuration list for PBXProject "tf_benchmark_example" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; @@ -155,40 +158,123 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 5911579A1CF4011C00C31E3A /* benchmark */, + 1C8BA8FB1EC682E700CCCC8C /* tf_benchmark_example */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 591157991CF4011C00C31E3A /* Resources */ = { + 1C8BA9041EC682E700CCCC8C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 59A3D00C1CF4E68100C4259F /* BenchmarkViewController.xib in Resources */, - 59A3D0051CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt in Resources */, - 59A3D0071CF4E68100C4259F /* tensorflow_inception_graph.pb in Resources */, - 59A3D0031CF4E68100C4259F /* grace_hopper.jpg in Resources */, + 1C8BA9051EC682E700CCCC8C /* BenchmarkViewController.xib in Resources */, + 1C8BA9061EC682E700CCCC8C /* imagenet_comp_graph_label_strings.txt in Resources */, + 1C8BA9071EC682E700CCCC8C /* tensorflow_inception_graph.pb in Resources */, + 1C8BA9081EC682E700CCCC8C /* grace_hopper.jpg in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 0388D751057A257A12848245 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 8999A303091D4E86202C2F64 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-tf_benchmark_example/Pods-tf_benchmark_example-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + A7B4B278BCC417B76A47ABB0 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-tf_benchmark_example/Pods-tf_benchmark_example-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ - 591157971CF4011C00C31E3A /* Sources */ = { + 1C8BA8FC1EC682E700CCCC8C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 59A3D0091CF4E68100C4259F /* main.mm in Sources */, - 59A3D0011CF4E68100C4259F /* AppDelegate.mm in Sources */, - 59A3D00B1CF4E68100C4259F /* BenchmarkViewController.mm in Sources */, - 59A3D0081CF4E68100C4259F /* ios_image_load.mm in Sources */, + 1C8BA8FD1EC682E700CCCC8C /* main.mm in Sources */, + 1C8BA8FE1EC682E700CCCC8C /* AppDelegate.mm in Sources */, + 1C8BA8FF1EC682E700CCCC8C /* BenchmarkViewController.mm in Sources */, + 1C8BA9001EC682E700CCCC8C /* ios_image_load.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ + 1C8BA90A1EC682E700CCCC8C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5FD1623E64FC0154A67E8DD5 /* Pods-tf_benchmark_example.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + ENABLE_BITCODE = NO; + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = "$(SRCROOT)/Benchmark-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ""; + OTHER_LDFLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.tf-benchmark-example"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 1C8BA90B1EC682E700CCCC8C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DB6B3E596779C98202E84711 /* Pods-tf_benchmark_example.release.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + ENABLE_BITCODE = NO; + HEADER_SEARCH_PATHS = "$(inherited)"; + INFOPLIST_FILE = "$(SRCROOT)/Benchmark-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ""; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.tf-benchmark-example"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; 591157B01CF4011D00C31E3A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -202,8 +288,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -225,7 +313,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -246,8 +334,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -263,7 +353,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -271,79 +361,19 @@ }; name = Release; }; - 591157B31CF4011D00C31E3A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; - ENABLE_BITCODE = NO; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../../../..", - "$(SRCROOT)/../../makefile/downloads/protobuf/src/", - "$(SRCROOT)/../../makefile/downloads", - "$(SRCROOT)/../../makefile/gen/proto", - "$(SRCROOT)/../../makefile/downloads/eigen", - ); - INFOPLIST_FILE = "$(SRCROOT)/Benchmark-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(SRCROOT)/../../makefile/gen/protobuf_ios/lib", - "$(SRCROOT)/../../makefile/gen/lib", - ); - OTHER_LDFLAGS = ( - "-force_load", - "$(SRCROOT)/../../makefile/gen/lib/libtensorflow-core.a", - "-Xlinker", - "-S", - "-Xlinker", - "-x", - "-Xlinker", - "-dead_strip", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.google.TF-Test"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 591157B41CF4011D00C31E3A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; - ENABLE_BITCODE = NO; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../../../..", - "$(SRCROOT)/../../makefile/downloads/protobuf/src/", - "$(SRCROOT)/../../makefile/downloads", - "$(SRCROOT)/../../makefile/gen/proto", - "$(SRCROOT)/../../makefile/downloads/eigen", - ); - INFOPLIST_FILE = "$(SRCROOT)/Benchmark-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(SRCROOT)/../../makefile/gen/protobuf_ios/lib", - "$(SRCROOT)/../../makefile/gen/lib", - ); - ONLY_ACTIVE_ARCH = YES; - OTHER_LDFLAGS = ( - "-force_load", - "$(SRCROOT)/../../makefile/gen/lib/libtensorflow-core.a", - "-Xlinker", - "-S", - "-Xlinker", - "-x", - "-Xlinker", - "-dead_strip", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.google.TF-Test"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 591157961CF4011C00C31E3A /* Build configuration list for PBXProject "benchmark" */ = { + 1C8BA9091EC682E700CCCC8C /* Build configuration list for PBXNativeTarget "tf_benchmark_example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1C8BA90A1EC682E700CCCC8C /* Debug */, + 1C8BA90B1EC682E700CCCC8C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 591157961CF4011C00C31E3A /* Build configuration list for PBXProject "tf_benchmark_example" */ = { isa = XCConfigurationList; buildConfigurations = ( 591157B01CF4011D00C31E3A /* Debug */, @@ -352,15 +382,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 591157B21CF4011D00C31E3A /* Build configuration list for PBXNativeTarget "benchmark" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 591157B31CF4011D00C31E3A /* Debug */, - 591157B41CF4011D00C31E3A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = 591157931CF4011C00C31E3A /* Project object */; diff --git a/tensorflow/contrib/ios_examples/camera/CameraExampleAppDelegate.h b/tensorflow/examples/ios/camera/CameraExampleAppDelegate.h similarity index 100% rename from tensorflow/contrib/ios_examples/camera/CameraExampleAppDelegate.h rename to tensorflow/examples/ios/camera/CameraExampleAppDelegate.h diff --git a/tensorflow/contrib/ios_examples/camera/CameraExampleAppDelegate.m b/tensorflow/examples/ios/camera/CameraExampleAppDelegate.m similarity index 100% rename from tensorflow/contrib/ios_examples/camera/CameraExampleAppDelegate.m rename to tensorflow/examples/ios/camera/CameraExampleAppDelegate.m diff --git a/tensorflow/contrib/ios_examples/camera/CameraExampleViewController.h b/tensorflow/examples/ios/camera/CameraExampleViewController.h similarity index 98% rename from tensorflow/contrib/ios_examples/camera/CameraExampleViewController.h rename to tensorflow/examples/ios/camera/CameraExampleViewController.h index df744428a8a..0aefbc6eedb 100644 --- a/tensorflow/contrib/ios_examples/camera/CameraExampleViewController.h +++ b/tensorflow/examples/ios/camera/CameraExampleViewController.h @@ -29,6 +29,7 @@ dispatch_queue_t videoDataOutputQueue; AVCaptureStillImageOutput *stillImageOutput; UIView *flashView; + UIImage *square; BOOL isUsingFrontFacingCamera; AVSpeechSynthesizer *synth; NSMutableDictionary *oldPredictionValues; diff --git a/tensorflow/contrib/ios_examples/camera/CameraExampleViewController.mm b/tensorflow/examples/ios/camera/CameraExampleViewController.mm similarity index 97% rename from tensorflow/contrib/ios_examples/camera/CameraExampleViewController.mm rename to tensorflow/examples/ios/camera/CameraExampleViewController.mm index 27df3d3d71c..d113d50ff8e 100644 --- a/tensorflow/contrib/ios_examples/camera/CameraExampleViewController.mm +++ b/tensorflow/examples/ios/camera/CameraExampleViewController.mm @@ -323,10 +323,10 @@ didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer auto predictions = output->flat(); NSMutableDictionary *newValues = [NSMutableDictionary dictionary]; - for (int index = 0; index < predictions.size(); ++index) { + for (int index = 0; index < predictions.size(); index += 1) { const float predictionValue = predictions(index); if (predictionValue > 0.05f) { - std::string label = labels[index]; + std::string label = labels[index % predictions.size()]; NSString *labelObject = [NSString stringWithUTF8String:label.c_str()]; NSNumber *valueObject = [NSNumber numberWithFloat:predictionValue]; [newValues setObject:valueObject forKey:labelObject]; @@ -369,12 +369,17 @@ didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer isUsingFrontFacingCamera = !isUsingFrontFacingCamera; } +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; +} + - (void)viewDidLoad { [super viewDidLoad]; + square = [UIImage imageNamed:@"squarePNG"]; synth = [[AVSpeechSynthesizer alloc] init]; labelLayers = [[NSMutableArray alloc] init]; oldPredictionValues = [[NSMutableDictionary alloc] init]; - + tensorflow::Status load_status; if (model_uses_memory_mapping) { load_status = LoadMemoryMappedModel( @@ -394,6 +399,26 @@ didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer [self setupAVCapture]; } +- (void)viewDidUnload { + [super viewDidUnload]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; +} + - (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); diff --git a/tensorflow/contrib/ios_examples/camera/Info.plist b/tensorflow/examples/ios/camera/Info.plist similarity index 97% rename from tensorflow/contrib/ios_examples/camera/Info.plist rename to tensorflow/examples/ios/camera/Info.plist index 82978ca2786..772fb38dcc9 100644 --- a/tensorflow/contrib/ios_examples/camera/Info.plist +++ b/tensorflow/examples/ios/camera/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - ${PRODUCT_NAME} + tf_camera_example CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier diff --git a/tensorflow/contrib/ios_examples/camera/en.lproj/MainStoryboard_iPhone.storyboard b/tensorflow/examples/ios/camera/MainStoryboard_iPhone.storyboard similarity index 100% rename from tensorflow/contrib/ios_examples/camera/en.lproj/MainStoryboard_iPhone.storyboard rename to tensorflow/examples/ios/camera/MainStoryboard_iPhone.storyboard diff --git a/tensorflow/examples/ios/camera/Podfile b/tensorflow/examples/ios/camera/Podfile new file mode 100644 index 00000000000..117828f0714 --- /dev/null +++ b/tensorflow/examples/ios/camera/Podfile @@ -0,0 +1,5 @@ +platform :ios, '8.0' +inhibit_all_warnings! + +target 'tf_camera_example' + pod 'TensorFlow-experimental' diff --git a/tensorflow/contrib/ios_examples/simple/data/grace_hopper.jpg b/tensorflow/examples/ios/camera/data/grace_hopper.jpg similarity index 100% rename from tensorflow/contrib/ios_examples/simple/data/grace_hopper.jpg rename to tensorflow/examples/ios/camera/data/grace_hopper.jpg diff --git a/tensorflow/contrib/ios_examples/camera/ios_image_load.h b/tensorflow/examples/ios/camera/ios_image_load.h similarity index 100% rename from tensorflow/contrib/ios_examples/camera/ios_image_load.h rename to tensorflow/examples/ios/camera/ios_image_load.h diff --git a/tensorflow/contrib/ios_examples/camera/ios_image_load.mm b/tensorflow/examples/ios/camera/ios_image_load.mm similarity index 100% rename from tensorflow/contrib/ios_examples/camera/ios_image_load.mm rename to tensorflow/examples/ios/camera/ios_image_load.mm diff --git a/tensorflow/contrib/ios_examples/camera/main.mm b/tensorflow/examples/ios/camera/main.mm similarity index 100% rename from tensorflow/contrib/ios_examples/camera/main.mm rename to tensorflow/examples/ios/camera/main.mm diff --git a/tensorflow/contrib/ios_examples/camera/tensorflow_utils.h b/tensorflow/examples/ios/camera/tensorflow_utils.h similarity index 100% rename from tensorflow/contrib/ios_examples/camera/tensorflow_utils.h rename to tensorflow/examples/ios/camera/tensorflow_utils.h diff --git a/tensorflow/contrib/ios_examples/camera/tensorflow_utils.mm b/tensorflow/examples/ios/camera/tensorflow_utils.mm similarity index 93% rename from tensorflow/contrib/ios_examples/camera/tensorflow_utils.mm rename to tensorflow/examples/ios/camera/tensorflow_utils.mm index 43746882ee1..56d1e53081d 100644 --- a/tensorflow/contrib/ios_examples/camera/tensorflow_utils.mm +++ b/tensorflow/examples/ios/camera/tensorflow_utils.mm @@ -23,18 +23,6 @@ #include #include -#include "google/protobuf/io/coded_stream.h" -#include "google/protobuf/io/zero_copy_stream_impl.h" -#include "google/protobuf/io/zero_copy_stream_impl_lite.h" -#include "google/protobuf/message_lite.h" -#include "tensorflow/core/framework/tensor.h" -#include "tensorflow/core/framework/types.pb.h" -#include "tensorflow/core/platform/env.h" -#include "tensorflow/core/platform/logging.h" -#include "tensorflow/core/platform/mutex.h" -#include "tensorflow/core/platform/types.h" -#include "tensorflow/core/public/session.h" - namespace { // Helper class used to load protobufs efficiently. @@ -228,4 +216,4 @@ tensorflow::Status LoadLabels(NSString* file_name, NSString* file_type, } t.close(); return tensorflow::Status::OK(); -} \ No newline at end of file +} diff --git a/tensorflow/examples/ios/camera/tf_camera_example.xcodeproj/project.pbxproj b/tensorflow/examples/ios/camera/tf_camera_example.xcodeproj/project.pbxproj new file mode 100644 index 00000000000..ee9fe57c792 --- /dev/null +++ b/tensorflow/examples/ios/camera/tf_camera_example.xcodeproj/project.pbxproj @@ -0,0 +1,412 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1C3C9DCB1ED3AB4200B8B5FA /* ios_image_load.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C3C9DC91ED3AB4200B8B5FA /* ios_image_load.mm */; }; + 1C3C9DCC1ED3AB4200B8B5FA /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C3C9DCA1ED3AB4200B8B5FA /* main.mm */; }; + 1C968D171ED3B8F20054F5C3 /* grace_hopper.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 59A3CFF51CF4E68100C4259F /* grace_hopper.jpg */; }; + 1C968D181ED3B8F20054F5C3 /* imagenet_comp_graph_label_strings.txt in Resources */ = {isa = PBXBuildFile; fileRef = 59A3CFF71CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt */; }; + 1C968D191ED3B8F20054F5C3 /* tensorflow_inception_graph.pb in Resources */ = {isa = PBXBuildFile; fileRef = 59A3CFF91CF4E68100C4259F /* tensorflow_inception_graph.pb */; }; + 1C99111C1ED3B0E600A6BFB9 /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1C99111B1ED3B0E600A6BFB9 /* MainStoryboard_iPhone.storyboard */; }; + 1CA5EB931ED3ABFB00247A34 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CA5EB921ED3ABFB00247A34 /* CoreMedia.framework */; }; + 1CB47D491ED3AD1700DF7666 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CB47D481ED3AD1700DF7666 /* AVFoundation.framework */; }; + 1CDB2D491ED3A9CD007929E9 /* CameraExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CDB2D431ED3A9CD007929E9 /* CameraExampleAppDelegate.m */; }; + 1CDB2D4A1ED3A9CD007929E9 /* CameraExampleViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1CDB2D451ED3A9CD007929E9 /* CameraExampleViewController.mm */; }; + 1CDB2D4C1ED3A9CD007929E9 /* tensorflow_utils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1CDB2D481ED3A9CD007929E9 /* tensorflow_utils.mm */; }; + 1CDB2D4E1ED3AA35007929E9 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 1CDB2D4D1ED3AA35007929E9 /* Info.plist */; }; + 54DC6C3C5F734F3A58069F0C /* libPods-tf_camera_example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BA8BF92C84895BFE59D8236 /* libPods-tf_camera_example.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 1C0D73481ECCC41B008C1DAB /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = System/Library/Frameworks/CoreImage.framework; sourceTree = SDKROOT; }; + 1C0D734A1ECCC460008C1DAB /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 1C3C9DC81ED3AB4200B8B5FA /* ios_image_load.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ios_image_load.h; sourceTree = ""; }; + 1C3C9DC91ED3AB4200B8B5FA /* ios_image_load.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ios_image_load.mm; sourceTree = ""; }; + 1C3C9DCA1ED3AB4200B8B5FA /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = ""; }; + 1C564C0D1ED3A92E00087306 /* tf_camera_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tf_camera_example.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1C99111B1ED3B0E600A6BFB9 /* MainStoryboard_iPhone.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MainStoryboard_iPhone.storyboard; sourceTree = ""; }; + 1CA45FFE1ECCC356002FA6A4 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 1CA5EB921ED3ABFB00247A34 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + 1CB47D481ED3AD1700DF7666 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 1CDB2D421ED3A9CD007929E9 /* CameraExampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CameraExampleAppDelegate.h; sourceTree = ""; }; + 1CDB2D431ED3A9CD007929E9 /* CameraExampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CameraExampleAppDelegate.m; sourceTree = ""; }; + 1CDB2D441ED3A9CD007929E9 /* CameraExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CameraExampleViewController.h; sourceTree = ""; }; + 1CDB2D451ED3A9CD007929E9 /* CameraExampleViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CameraExampleViewController.mm; sourceTree = ""; }; + 1CDB2D471ED3A9CD007929E9 /* tensorflow_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tensorflow_utils.h; sourceTree = ""; }; + 1CDB2D481ED3A9CD007929E9 /* tensorflow_utils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = tensorflow_utils.mm; sourceTree = ""; }; + 1CDB2D4D1ED3AA35007929E9 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 3BA8BF92C84895BFE59D8236 /* libPods-tf_camera_example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-tf_camera_example.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3BC5BE4BBD09374D3E98F082 /* Pods-tf_camera_example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tf_camera_example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-tf_camera_example/Pods-tf_camera_example.debug.xcconfig"; sourceTree = ""; }; + 55ED318E8D29C8AFEF03DF1E /* Pods-tf_camera_example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tf_camera_example.release.xcconfig"; path = "Pods/Target Support Files/Pods-tf_camera_example/Pods-tf_camera_example.release.xcconfig"; sourceTree = ""; }; + 59A3CFF51CF4E68100C4259F /* grace_hopper.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = grace_hopper.jpg; sourceTree = ""; }; + 59A3CFF71CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = imagenet_comp_graph_label_strings.txt; sourceTree = ""; }; + 59A3CFF91CF4E68100C4259F /* tensorflow_inception_graph.pb */ = {isa = PBXFileReference; lastKnownFileType = file; path = tensorflow_inception_graph.pb; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1C564C0A1ED3A92E00087306 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1CB47D491ED3AD1700DF7666 /* AVFoundation.framework in Frameworks */, + 1CA5EB931ED3ABFB00247A34 /* CoreMedia.framework in Frameworks */, + 54DC6C3C5F734F3A58069F0C /* libPods-tf_camera_example.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 24D7686C331131624F4454A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1CB47D481ED3AD1700DF7666 /* AVFoundation.framework */, + 1CA5EB921ED3ABFB00247A34 /* CoreMedia.framework */, + 1C0D734A1ECCC460008C1DAB /* CoreGraphics.framework */, + 1C0D73481ECCC41B008C1DAB /* CoreImage.framework */, + 1CA45FFE1ECCC356002FA6A4 /* UIKit.framework */, + 3BA8BF92C84895BFE59D8236 /* libPods-tf_camera_example.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 3E9FC355632FB928EA23BEED /* Pods */ = { + isa = PBXGroup; + children = ( + 3BC5BE4BBD09374D3E98F082 /* Pods-tf_camera_example.debug.xcconfig */, + 55ED318E8D29C8AFEF03DF1E /* Pods-tf_camera_example.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + 591157921CF4011C00C31E3A = { + isa = PBXGroup; + children = ( + 1C99111B1ED3B0E600A6BFB9 /* MainStoryboard_iPhone.storyboard */, + 1C3C9DC81ED3AB4200B8B5FA /* ios_image_load.h */, + 1C3C9DC91ED3AB4200B8B5FA /* ios_image_load.mm */, + 1C3C9DCA1ED3AB4200B8B5FA /* main.mm */, + 1CDB2D4D1ED3AA35007929E9 /* Info.plist */, + 1CDB2D421ED3A9CD007929E9 /* CameraExampleAppDelegate.h */, + 1CDB2D431ED3A9CD007929E9 /* CameraExampleAppDelegate.m */, + 1CDB2D441ED3A9CD007929E9 /* CameraExampleViewController.h */, + 1CDB2D451ED3A9CD007929E9 /* CameraExampleViewController.mm */, + 1CDB2D471ED3A9CD007929E9 /* tensorflow_utils.h */, + 1CDB2D481ED3A9CD007929E9 /* tensorflow_utils.mm */, + 59A3CFF31CF4E68100C4259F /* data */, + 5911579C1CF4011C00C31E3A /* Products */, + 3E9FC355632FB928EA23BEED /* Pods */, + 24D7686C331131624F4454A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 5911579C1CF4011C00C31E3A /* Products */ = { + isa = PBXGroup; + children = ( + 1C564C0D1ED3A92E00087306 /* tf_camera_example.app */, + ); + name = Products; + sourceTree = ""; + }; + 59A3CFF31CF4E68100C4259F /* data */ = { + isa = PBXGroup; + children = ( + 59A3CFF51CF4E68100C4259F /* grace_hopper.jpg */, + 59A3CFF71CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt */, + 59A3CFF91CF4E68100C4259F /* tensorflow_inception_graph.pb */, + ); + path = data; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1C564C0C1ED3A92E00087306 /* tf_camera_example */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1C564C351ED3A92E00087306 /* Build configuration list for PBXNativeTarget "tf_camera_example" */; + buildPhases = ( + 66DAEAAEE9EF6550C3A061E0 /* [CP] Check Pods Manifest.lock */, + 1C564C091ED3A92E00087306 /* Sources */, + 1C564C0A1ED3A92E00087306 /* Frameworks */, + 1C564C0B1ED3A92E00087306 /* Resources */, + 00E875C3B066535AE6B77101 /* [CP] Embed Pods Frameworks */, + 5C2D02120E3E5E09567AA946 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = tf_camera_example; + productName = tf_camera_example; + productReference = 1C564C0D1ED3A92E00087306 /* tf_camera_example.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 591157931CF4011C00C31E3A /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0830; + LastUpgradeCheck = 0830; + ORGANIZATIONNAME = Google; + TargetAttributes = { + 1C564C0C1ED3A92E00087306 = { + CreatedOnToolsVersion = 8.3.2; + DevelopmentTeam = 5DRPWFQSHP; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 591157961CF4011C00C31E3A /* Build configuration list for PBXProject "tf_camera_example" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 591157921CF4011C00C31E3A; + productRefGroup = 5911579C1CF4011C00C31E3A /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1C564C0C1ED3A92E00087306 /* tf_camera_example */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 1C564C0B1ED3A92E00087306 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1C968D171ED3B8F20054F5C3 /* grace_hopper.jpg in Resources */, + 1C968D181ED3B8F20054F5C3 /* imagenet_comp_graph_label_strings.txt in Resources */, + 1C968D191ED3B8F20054F5C3 /* tensorflow_inception_graph.pb in Resources */, + 1C99111C1ED3B0E600A6BFB9 /* MainStoryboard_iPhone.storyboard in Resources */, + 1CDB2D4E1ED3AA35007929E9 /* Info.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00E875C3B066535AE6B77101 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-tf_camera_example/Pods-tf_camera_example-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 5C2D02120E3E5E09567AA946 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-tf_camera_example/Pods-tf_camera_example-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 66DAEAAEE9EF6550C3A061E0 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1C564C091ED3A92E00087306 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1CDB2D4C1ED3A9CD007929E9 /* tensorflow_utils.mm in Sources */, + 1C3C9DCB1ED3AB4200B8B5FA /* ios_image_load.mm in Sources */, + 1CDB2D4A1ED3A9CD007929E9 /* CameraExampleViewController.mm in Sources */, + 1CDB2D491ED3A9CD007929E9 /* CameraExampleAppDelegate.m in Sources */, + 1C3C9DCC1ED3AB4200B8B5FA /* main.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1C564C361ED3A92E00087306 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3BC5BE4BBD09374D3E98F082 /* Pods-tf_camera_example.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + DEVELOPMENT_TEAM = 5DRPWFQSHP; + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.pf.tf-camera-example"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + 1C564C371ED3A92E00087306 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 55ED318E8D29C8AFEF03DF1E /* Pods-tf_camera_example.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + DEVELOPMENT_TEAM = 5DRPWFQSHP; + INFOPLIST_FILE = Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.pf.tf-camera-example"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; + 591157B01CF4011D00C31E3A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 591157B11CF4011D00C31E3A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1C564C351ED3A92E00087306 /* Build configuration list for PBXNativeTarget "tf_camera_example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1C564C361ED3A92E00087306 /* Debug */, + 1C564C371ED3A92E00087306 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 591157961CF4011C00C31E3A /* Build configuration list for PBXProject "tf_camera_example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 591157B01CF4011D00C31E3A /* Debug */, + 591157B11CF4011D00C31E3A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 591157931CF4011C00C31E3A /* Project object */; +} diff --git a/tensorflow/contrib/ios_examples/simple/AppDelegate.h b/tensorflow/examples/ios/simple/AppDelegate.h similarity index 100% rename from tensorflow/contrib/ios_examples/simple/AppDelegate.h rename to tensorflow/examples/ios/simple/AppDelegate.h diff --git a/tensorflow/contrib/ios_examples/simple/AppDelegate.mm b/tensorflow/examples/ios/simple/AppDelegate.mm similarity index 100% rename from tensorflow/contrib/ios_examples/simple/AppDelegate.mm rename to tensorflow/examples/ios/simple/AppDelegate.mm diff --git a/tensorflow/examples/ios/simple/Podfile b/tensorflow/examples/ios/simple/Podfile new file mode 100644 index 00000000000..1740ad64573 --- /dev/null +++ b/tensorflow/examples/ios/simple/Podfile @@ -0,0 +1,5 @@ +platform :ios, '8.0' +inhibit_all_warnings! + +target 'tf_simple_example' + pod 'TensorFlow-experimental' diff --git a/tensorflow/contrib/ios_examples/simple/RunModel-Info.plist b/tensorflow/examples/ios/simple/RunModel-Info.plist similarity index 92% rename from tensorflow/contrib/ios_examples/simple/RunModel-Info.plist rename to tensorflow/examples/ios/simple/RunModel-Info.plist index ca80e680911..d0a8742456f 100644 --- a/tensorflow/contrib/ios_examples/simple/RunModel-Info.plist +++ b/tensorflow/examples/ios/simple/RunModel-Info.plist @@ -5,11 +5,11 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - tf_ios_makefile_example + tf_simple_example CFBundleExecutable - tf_ios_makefile_example + tf_simple_example CFBundleIdentifier - Google.RunModel + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/tensorflow/contrib/ios_examples/simple/RunModelViewController.h b/tensorflow/examples/ios/simple/RunModelViewController.h similarity index 100% rename from tensorflow/contrib/ios_examples/simple/RunModelViewController.h rename to tensorflow/examples/ios/simple/RunModelViewController.h diff --git a/tensorflow/contrib/ios_examples/simple/RunModelViewController.mm b/tensorflow/examples/ios/simple/RunModelViewController.mm similarity index 92% rename from tensorflow/contrib/ios_examples/simple/RunModelViewController.mm rename to tensorflow/examples/ios/simple/RunModelViewController.mm index 5c121962d9c..c8ccb5c77b2 100644 --- a/tensorflow/contrib/ios_examples/simple/RunModelViewController.mm +++ b/tensorflow/examples/ios/simple/RunModelViewController.mm @@ -21,17 +21,7 @@ #include #include -#include "google/protobuf/io/coded_stream.h" -#include "google/protobuf/io/zero_copy_stream_impl.h" -#include "google/protobuf/io/zero_copy_stream_impl_lite.h" -#include "google/protobuf/message_lite.h" #include "tensorflow/core/framework/op_kernel.h" -#include "tensorflow/core/framework/tensor.h" -#include "tensorflow/core/framework/types.pb.h" -#include "tensorflow/core/platform/env.h" -#include "tensorflow/core/platform/logging.h" -#include "tensorflow/core/platform/mutex.h" -#include "tensorflow/core/platform/types.h" #include "tensorflow/core/public/session.h" #include "ios_image_load.h" @@ -50,7 +40,7 @@ class IfstreamInputStream : public ::google::protobuf::io::CopyingInputStream { return -1; } ifs_.read(static_cast(buffer), size); - return ifs_.gcount(); + return (int)ifs_.gcount(); } private: @@ -83,7 +73,7 @@ static void GetTopN( std::vector >, std::greater > > top_result_pq; - const int count = prediction.size(); + const long count = prediction.size(); for (int i = 0; i < count; ++i) { const float value = prediction(i); @@ -121,7 +111,7 @@ bool PortableReadFileToProto(const std::string& file_name, // eventually remove this and quit loud when a large protobuf is passed in. ::google::protobuf::io::CodedInputStream coded_stream(&stream); // Total bytes hard limit / warning limit are set to 1GB and 512MB - // respectively. + // respectively. coded_stream.SetTotalBytesLimit(1024LL << 20, 512LL << 20); return proto->ParseFromCodedStream(&coded_stream); } @@ -192,7 +182,7 @@ NSString* RunInferenceOnImage() { 1, wanted_height, wanted_width, wanted_channels})); auto image_tensor_mapped = image_tensor.tensor(); tensorflow::uint8* in = image_data.data(); - tensorflow::uint8* in_end = (in + (image_height * image_width * image_channels)); + // tensorflow::uint8* in_end = (in + (image_height * image_width * image_channels)); float* out = image_tensor_mapped.data(); for (int y = 0; y < wanted_height; ++y) { const int in_y = (y * image_height) / wanted_height; @@ -209,7 +199,7 @@ NSString* RunInferenceOnImage() { } NSString* result = [network_path stringByAppendingString: @" - loaded!"]; - result = [NSString stringWithFormat: @"%@ - %d, %s - %dx%d", result, + result = [NSString stringWithFormat: @"%@ - %lu, %s - %dx%d", result, label_strings.size(), label_strings[0].c_str(), image_width, image_height]; std::string input_layer = "input"; diff --git a/tensorflow/contrib/ios_examples/simple/RunModelViewController.xib b/tensorflow/examples/ios/simple/RunModelViewController.xib similarity index 100% rename from tensorflow/contrib/ios_examples/simple/RunModelViewController.xib rename to tensorflow/examples/ios/simple/RunModelViewController.xib diff --git a/tensorflow/examples/ios/simple/data/grace_hopper.jpg b/tensorflow/examples/ios/simple/data/grace_hopper.jpg new file mode 100644 index 00000000000..d2a427810f6 Binary files /dev/null and b/tensorflow/examples/ios/simple/data/grace_hopper.jpg differ diff --git a/tensorflow/contrib/ios_examples/simple/ios_image_load.h b/tensorflow/examples/ios/simple/ios_image_load.h similarity index 100% rename from tensorflow/contrib/ios_examples/simple/ios_image_load.h rename to tensorflow/examples/ios/simple/ios_image_load.h diff --git a/tensorflow/contrib/ios_examples/simple/ios_image_load.mm b/tensorflow/examples/ios/simple/ios_image_load.mm similarity index 100% rename from tensorflow/contrib/ios_examples/simple/ios_image_load.mm rename to tensorflow/examples/ios/simple/ios_image_load.mm diff --git a/tensorflow/contrib/ios_examples/simple/main.mm b/tensorflow/examples/ios/simple/main.mm similarity index 100% rename from tensorflow/contrib/ios_examples/simple/main.mm rename to tensorflow/examples/ios/simple/main.mm diff --git a/tensorflow/contrib/ios_examples/simple/tf_ios_makefile_example.xcodeproj/project.pbxproj b/tensorflow/examples/ios/simple/tf_simple_example.xcodeproj/project.pbxproj similarity index 68% rename from tensorflow/contrib/ios_examples/simple/tf_ios_makefile_example.xcodeproj/project.pbxproj rename to tensorflow/examples/ios/simple/tf_simple_example.xcodeproj/project.pbxproj index 94a0037e4fd..55c06e28fb3 100644 --- a/tensorflow/contrib/ios_examples/simple/tf_ios_makefile_example.xcodeproj/project.pbxproj +++ b/tensorflow/examples/ios/simple/tf_simple_example.xcodeproj/project.pbxproj @@ -7,9 +7,9 @@ objects = { /* Begin PBXBuildFile section */ - 590E7D881D02091F00DF5523 /* libprotobuf-lite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 590E7D861D02091F00DF5523 /* libprotobuf-lite.a */; }; - 590E7D8A1D0209DD00DF5523 /* libprotobuf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 590E7D871D02091F00DF5523 /* libprotobuf.a */; }; - 5993C7741D5D4EAF0048CE6A /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5993C7731D5D4EAF0048CE6A /* Accelerate.framework */; }; + 1C0D734B1ECCC460008C1DAB /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C0D734A1ECCC460008C1DAB /* CoreGraphics.framework */; }; + 1CA45FFF1ECCC356002FA6A4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CA45FFE1ECCC356002FA6A4 /* UIKit.framework */; }; + 2530463E3C9A9D5FB9299C0E /* libPods-tf_simple_example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 73DBC33C5DD9A526EE6D1EF2 /* libPods-tf_simple_example.a */; }; 59A3D0011CF4E68100C4259F /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 59A3CFF21CF4E68100C4259F /* AppDelegate.mm */; }; 59A3D0031CF4E68100C4259F /* grace_hopper.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 59A3CFF51CF4E68100C4259F /* grace_hopper.jpg */; }; 59A3D0051CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt in Resources */ = {isa = PBXBuildFile; fileRef = 59A3CFF71CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt */; }; @@ -18,22 +18,17 @@ 59A3D0091CF4E68100C4259F /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 59A3CFFC1CF4E68100C4259F /* main.mm */; }; 59A3D00B1CF4E68100C4259F /* RunModelViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 59A3CFFF1CF4E68100C4259F /* RunModelViewController.mm */; }; 59A3D00C1CF4E68100C4259F /* RunModelViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 59A3D0001CF4E68100C4259F /* RunModelViewController.xib */; }; - 59A3D0141CF4E82500C4259F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59A3D0131CF4E82500C4259F /* CoreGraphics.framework */; }; - 59A3D0181CF4E86100C4259F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59A3D0171CF4E86100C4259F /* UIKit.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 590E7D861D02091F00DF5523 /* libprotobuf-lite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libprotobuf-lite.a"; path = "../../makefile/gen/protobuf_ios/lib/libprotobuf-lite.a"; sourceTree = ""; }; - 590E7D871D02091F00DF5523 /* libprotobuf.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libprotobuf.a; path = ../../makefile/gen/protobuf_ios/lib/libprotobuf.a; sourceTree = ""; }; - 5911579B1CF4011C00C31E3A /* tf_ios_makefile_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tf_ios_makefile_example.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 5993C7731D5D4EAF0048CE6A /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 1C0D73481ECCC41B008C1DAB /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = System/Library/Frameworks/CoreImage.framework; sourceTree = SDKROOT; }; + 1C0D734A1ECCC460008C1DAB /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 1CA45FFE1ECCC356002FA6A4 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 5911579B1CF4011C00C31E3A /* tf_simple_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tf_simple_example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 59A3CFF11CF4E68100C4259F /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 59A3CFF21CF4E68100C4259F /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AppDelegate.mm; sourceTree = ""; }; - 59A3CFF41CF4E68100C4259F /* cropped_panda.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = cropped_panda.jpg; sourceTree = ""; }; 59A3CFF51CF4E68100C4259F /* grace_hopper.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = grace_hopper.jpg; sourceTree = ""; }; - 59A3CFF61CF4E68100C4259F /* imagenet_2012_challenge_label_map_proto.pbtxt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = imagenet_2012_challenge_label_map_proto.pbtxt; sourceTree = ""; }; 59A3CFF71CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = imagenet_comp_graph_label_strings.txt; sourceTree = ""; }; - 59A3CFF81CF4E68100C4259F /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 59A3CFF91CF4E68100C4259F /* tensorflow_inception_graph.pb */ = {isa = PBXFileReference; lastKnownFileType = file; path = tensorflow_inception_graph.pb; sourceTree = ""; }; 59A3CFFA1CF4E68100C4259F /* ios_image_load.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ios_image_load.h; sourceTree = ""; }; 59A3CFFB1CF4E68100C4259F /* ios_image_load.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ios_image_load.mm; sourceTree = ""; }; @@ -42,9 +37,9 @@ 59A3CFFE1CF4E68100C4259F /* RunModelViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RunModelViewController.h; sourceTree = ""; }; 59A3CFFF1CF4E68100C4259F /* RunModelViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RunModelViewController.mm; sourceTree = ""; }; 59A3D0001CF4E68100C4259F /* RunModelViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RunModelViewController.xib; sourceTree = ""; }; - 59A3D0131CF4E82500C4259F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 59A3D0151CF4E83D00C4259F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 59A3D0171CF4E86100C4259F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 73DBC33C5DD9A526EE6D1EF2 /* libPods-tf_simple_example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-tf_simple_example.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 87ABECA6543FF90E81111A6D /* Pods-tf_simple_example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tf_simple_example.release.xcconfig"; path = "Pods/Target Support Files/Pods-tf_simple_example/Pods-tf_simple_example.release.xcconfig"; sourceTree = ""; }; + 8C94FEE43FD467468C5B75AA /* Pods-tf_simple_example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tf_simple_example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-tf_simple_example/Pods-tf_simple_example.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -52,26 +47,38 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5993C7741D5D4EAF0048CE6A /* Accelerate.framework in Frameworks */, - 590E7D8A1D0209DD00DF5523 /* libprotobuf.a in Frameworks */, - 590E7D881D02091F00DF5523 /* libprotobuf-lite.a in Frameworks */, - 59A3D0181CF4E86100C4259F /* UIKit.framework in Frameworks */, - 59A3D0141CF4E82500C4259F /* CoreGraphics.framework in Frameworks */, + 1C0D734B1ECCC460008C1DAB /* CoreGraphics.framework in Frameworks */, + 1CA45FFF1ECCC356002FA6A4 /* UIKit.framework in Frameworks */, + 2530463E3C9A9D5FB9299C0E /* libPods-tf_simple_example.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 24D7686C331131624F4454A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1C0D734A1ECCC460008C1DAB /* CoreGraphics.framework */, + 1C0D73481ECCC41B008C1DAB /* CoreImage.framework */, + 1CA45FFE1ECCC356002FA6A4 /* UIKit.framework */, + 73DBC33C5DD9A526EE6D1EF2 /* libPods-tf_simple_example.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 3E9FC355632FB928EA23BEED /* Pods */ = { + isa = PBXGroup; + children = ( + 8C94FEE43FD467468C5B75AA /* Pods-tf_simple_example.debug.xcconfig */, + 87ABECA6543FF90E81111A6D /* Pods-tf_simple_example.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; 591157921CF4011C00C31E3A = { isa = PBXGroup; children = ( - 5993C7731D5D4EAF0048CE6A /* Accelerate.framework */, - 590E7D861D02091F00DF5523 /* libprotobuf-lite.a */, - 590E7D871D02091F00DF5523 /* libprotobuf.a */, - 59A3D0171CF4E86100C4259F /* UIKit.framework */, - 59A3D0151CF4E83D00C4259F /* Foundation.framework */, - 59A3D0131CF4E82500C4259F /* CoreGraphics.framework */, 59A3CFF11CF4E68100C4259F /* AppDelegate.h */, 59A3CFF21CF4E68100C4259F /* AppDelegate.mm */, 59A3CFF31CF4E68100C4259F /* data */, @@ -83,13 +90,15 @@ 59A3CFFF1CF4E68100C4259F /* RunModelViewController.mm */, 59A3D0001CF4E68100C4259F /* RunModelViewController.xib */, 5911579C1CF4011C00C31E3A /* Products */, + 3E9FC355632FB928EA23BEED /* Pods */, + 24D7686C331131624F4454A0 /* Frameworks */, ); sourceTree = ""; }; 5911579C1CF4011C00C31E3A /* Products */ = { isa = PBXGroup; children = ( - 5911579B1CF4011C00C31E3A /* tf_ios_makefile_example.app */, + 5911579B1CF4011C00C31E3A /* tf_simple_example.app */, ); name = Products; sourceTree = ""; @@ -97,11 +106,8 @@ 59A3CFF31CF4E68100C4259F /* data */ = { isa = PBXGroup; children = ( - 59A3CFF41CF4E68100C4259F /* cropped_panda.jpg */, 59A3CFF51CF4E68100C4259F /* grace_hopper.jpg */, - 59A3CFF61CF4E68100C4259F /* imagenet_2012_challenge_label_map_proto.pbtxt */, 59A3CFF71CF4E68100C4259F /* imagenet_comp_graph_label_strings.txt */, - 59A3CFF81CF4E68100C4259F /* LICENSE */, 59A3CFF91CF4E68100C4259F /* tensorflow_inception_graph.pb */, ); path = data; @@ -110,21 +116,24 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 5911579A1CF4011C00C31E3A /* tf_ios_makefile_example */ = { + 5911579A1CF4011C00C31E3A /* tf_simple_example */ = { isa = PBXNativeTarget; - buildConfigurationList = 591157B21CF4011D00C31E3A /* Build configuration list for PBXNativeTarget "tf_ios_makefile_example" */; + buildConfigurationList = 591157B21CF4011D00C31E3A /* Build configuration list for PBXNativeTarget "tf_simple_example" */; buildPhases = ( + 1CD07C1CEB04E50C5975C7BB /* [CP] Check Pods Manifest.lock */, 591157971CF4011C00C31E3A /* Sources */, 591157981CF4011C00C31E3A /* Frameworks */, 591157991CF4011C00C31E3A /* Resources */, + 0EABEF9F31578BDA8CA9D2A7 /* [CP] Embed Pods Frameworks */, + 96DDF9E6E35958387A215092 /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); - name = tf_ios_makefile_example; + name = tf_simple_example; productName = tf_ios_makefile_example; - productReference = 5911579B1CF4011C00C31E3A /* tf_ios_makefile_example.app */; + productReference = 5911579B1CF4011C00C31E3A /* tf_simple_example.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -133,7 +142,7 @@ 591157931CF4011C00C31E3A /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0720; + LastUpgradeCheck = 0830; ORGANIZATIONNAME = Google; TargetAttributes = { 5911579A1CF4011C00C31E3A = { @@ -142,7 +151,7 @@ }; }; }; - buildConfigurationList = 591157961CF4011C00C31E3A /* Build configuration list for PBXProject "tf_ios_makefile_example" */; + buildConfigurationList = 591157961CF4011C00C31E3A /* Build configuration list for PBXProject "tf_simple_example" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; @@ -155,7 +164,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 5911579A1CF4011C00C31E3A /* tf_ios_makefile_example */, + 5911579A1CF4011C00C31E3A /* tf_simple_example */, ); }; /* End PBXProject section */ @@ -174,6 +183,54 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 0EABEF9F31578BDA8CA9D2A7 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-tf_simple_example/Pods-tf_simple_example-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 1CD07C1CEB04E50C5975C7BB /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 96DDF9E6E35958387A215092 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-tf_simple_example/Pods-tf_simple_example-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 591157971CF4011C00C31E3A /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -202,8 +259,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -225,7 +284,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -246,8 +305,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -263,7 +324,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -273,38 +334,21 @@ }; 591157B31CF4011D00C31E3A /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8C94FEE43FD467468C5B75AA /* Pods-tf_simple_example.debug.xcconfig */; buildSettings = { CLANG_DEBUG_INFORMATION_LEVEL = default; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; GCC_ENABLE_CPP_EXCEPTIONS = YES; GCC_ENABLE_CPP_RTTI = YES; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../../../..", - "$(SRCROOT)/../../makefile/downloads/protobuf/src/", - "$(SRCROOT)/../../makefile/downloads", - "$(SRCROOT)/../../makefile/gen/proto", - "$(SRCROOT)/../../makefile/downloads/eigen", - ); + HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = "$(SRCROOT)/RunModel-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(SRCROOT)/../../makefile/gen/protobuf_ios/lib", - "$(SRCROOT)/../../makefile/gen/lib", - ); + LIBRARY_SEARCH_PATHS = ""; OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; - OTHER_LDFLAGS = ( - "-force_load", - "$(SRCROOT)/../../makefile/gen/lib/libtensorflow-core.a", - "-Xlinker", - "-S", - "-Xlinker", - "-x", - "-Xlinker", - "-dead_strip", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.google.TF-Test"; + OTHER_LDFLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.tf-simple-example"; PRODUCT_NAME = "$(TARGET_NAME)"; SEPARATE_STRIP = NO; }; @@ -312,39 +356,22 @@ }; 591157B41CF4011D00C31E3A /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 87ABECA6543FF90E81111A6D /* Pods-tf_simple_example.release.xcconfig */; buildSettings = { CLANG_DEBUG_INFORMATION_LEVEL = default; CODE_SIGN_IDENTITY = "iPhone Developer"; ENABLE_BITCODE = NO; GCC_ENABLE_CPP_EXCEPTIONS = YES; GCC_ENABLE_CPP_RTTI = YES; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../../../..", - "$(SRCROOT)/../../makefile/downloads/protobuf/src/", - "$(SRCROOT)/../../makefile/downloads", - "$(SRCROOT)/../../makefile/gen/proto", - "$(SRCROOT)/../../makefile/downloads/eigen", - ); + HEADER_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = "$(SRCROOT)/RunModel-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(SRCROOT)/../../makefile/gen/protobuf_ios/lib", - "$(SRCROOT)/../../makefile/gen/lib", - ); + LIBRARY_SEARCH_PATHS = ""; ONLY_ACTIVE_ARCH = YES; OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; - OTHER_LDFLAGS = ( - "-force_load", - "$(SRCROOT)/../../makefile/gen/lib/libtensorflow-core.a", - "-Xlinker", - "-S", - "-Xlinker", - "-x", - "-Xlinker", - "-dead_strip", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.google.TF-Test"; + OTHER_LDFLAGS = "$(inherited)"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.tf-simple-example"; PRODUCT_NAME = "$(TARGET_NAME)"; SEPARATE_STRIP = NO; }; @@ -353,7 +380,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 591157961CF4011C00C31E3A /* Build configuration list for PBXProject "tf_ios_makefile_example" */ = { + 591157961CF4011C00C31E3A /* Build configuration list for PBXProject "tf_simple_example" */ = { isa = XCConfigurationList; buildConfigurations = ( 591157B01CF4011D00C31E3A /* Debug */, @@ -362,7 +389,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 591157B21CF4011D00C31E3A /* Build configuration list for PBXNativeTarget "tf_ios_makefile_example" */ = { + 591157B21CF4011D00C31E3A /* Build configuration list for PBXNativeTarget "tf_simple_example" */ = { isa = XCConfigurationList; buildConfigurations = ( 591157B31CF4011D00C31E3A /* Debug */,