热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android文件内存映射,如何在android中读取tensorflow内存映射图文件?

相同的代码(用ObjectiveC的呼吁让替代的文件名),可以在其他平台上使用过。因为我们使用内存映射,我们需要通过创建某个设定的文件有特殊Tensor

相同的代码(用Objective C的呼吁让替代的文件名),可以在其他平台上使用过。因为我们使用内存映射,我们需要通过创建某个设定的文件有特殊TensorFlow环境对象开始,我们将使用:

std::unique_ptr<:memmappedenv> memmapped_env;

memmapped_env->reset(

new tensorflow::MemmappedEnv(tensorflow::Env::Default()));

tensorflow::Status mmap_status &#61;

(memmapped_env->get())->InitializeFromFile(file_path);

然后&#xff0c;您需要在此环境下传递给后续调用&#xff0c;像这个加载图表一样。

tensorflow::GraphDef tensorflow_graph;

tensorflow::Status load_graph_status &#61; ReadBinaryProto(

memmapped_env->get(),

tensorflow::MemmappedFileSystem::kMemmappedPackageDefaultGraphDef,

&tensorflow_graph);

您还需要一个指向你所创建的环境中创建的会话&#xff1a;

tensorflow::SessionOptions options;

options.config.mutable_graph_options()

->mutable_optimizer_options()

->set_opt_level(::tensorflow::OptimizerOptions::L0);

options.env &#61; memmapped_env->get();

tensorflow::Session* session_pointer &#61; nullptr;

tensorflow::Status session_status &#61;

tensorflow::NewSession(options, &session_pointer);

这里有一点要注意的是&#xff0c;我们也在一些禁用自动优化&#xff0c;因为这些情况会折叠不变的子树&#xff0c;因此创建我们不想要的张量值的副本并使用更多的RAM。此设置也意味着很难在Android中使用存储为APK资源的模型&#xff0c;因为这些模型是压缩的&#xff0c;并且没有正常的文件名。相反&#xff0c;您需要将您的文件从APK复制到正常的文件系统位置。

一旦你完成了这些步骤&#xff0c;你就可以像平常一样使用会话和图表&#xff0c;并且你会看到加载时间和内存使用量的减少。



推荐阅读
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • Android开发技巧:使用IconFont减少应用体积
    本文介绍如何在Android应用中使用IconFont来显示图标,从而有效减少应用的体积。 ... [详细]
  • 本地存储组件实现对IE低版本浏览器的兼容性支持 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 卓盟科技:动态资源加载技术的兼容性优化与升级 | Android 开发者案例分享
    随着游戏内容日益复杂,资源加载过程已不仅仅是简单的进度显示,而是连接玩家与开发者的桥梁。玩家对快速加载的需求越来越高,这意味着开发者需要不断优化和提升动态资源加载技术的兼容性和性能。卓盟科技通过一系列的技术创新,不仅提高了加载速度,还确保了不同设备和系统的兼容性,为用户提供更加流畅的游戏体验。 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • 本文将深入探讨 iOS 中的 Grand Central Dispatch (GCD),并介绍如何利用 GCD 进行高效多线程编程。如果你对线程的基本概念还不熟悉,建议先阅读相关基础资料。 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
author-avatar
我家在波力牧场
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有