当前位置: 首页 > news >正文

图片优化网站网站建设罗贤伟

图片优化网站,网站建设罗贤伟,自适应网站建设案例,wordpress文本编辑器按钮0 前言 python是一门脚本语言#xff0c;运行时由python虚拟机解释执行。当我们使用python设计好算法给第三方使用时只能提供源码#xff0c;任何运行我们算法的人都可以看到源码以及对应的算法思路。因此#xff0c;需要一定手动保护源码。 最简单的保护方式是使用代码混…0 前言 python是一门脚本语言运行时由python虚拟机解释执行。当我们使用python设计好算法给第三方使用时只能提供源码任何运行我们算法的人都可以看到源码以及对应的算法思路。因此需要一定手动保护源码。 最简单的保护方式是使用代码混淆加大阅读难度。但这只是加大阅读难度对方只要花点时间还是可以理解算法思路。今天介绍使用Cython将python源码编译成库文件Windows平台为pyd文件Linux平台为so文件用户拿到库文件后无法反编译为python源码从而保证了代码安全性。另外还能达到代码运行加速效果。关于Cython更详细内容这里不过多介绍本文主要介绍如何使用Cython将python编译为库文件使用。 最近看到一个巨牛的人工智能教程分享一下给大家。教程不仅是零基础通俗易懂而且非常风趣幽默像看小说一样觉得太牛了所以分享给大家。平时碎片时间可以当小说看【点这里可以去膜拜一下大神的“小说”】。 1 场景实战 以mobilenet v3识别ImageNet为例项目目录如下所示 核心代码在src根目录下各个代码文件作用 src/model/mobilenetv3.py定义模型网络结构src/service/model_service.py: 定义模型创建、推理test_img/test.jpg: 定义测试图片图片内容为一架飞机weights/mobilenetv3_small_67.4.pth.tar: 训练好的模型参数test.py: 测试代码 看看test.py具体代码其他文件无需过于关注感兴趣的读者可以翻阅到本文末端获取完整代码。test.py具体代码如下 from src.service.model_service import load_model, infermodel load_model(weights/mobilenetv3_small_67.4.pth.tar)class_idx, score infer(model, test_img/test.jpg) print(class_idx, score)运行上面代码输出结果如下 404 0.8282396在Imagenet中索引为404的类别为客机可以看到整体运行没有问题。 2 算法源码加密 好了有了上面的算法场景后接下来我们对以上场景中的算法源码加密。 2.1 环境准备 安装Cython 执行如下命令安装Cython pip install Cython安装c/c编译环境 对于Linux读者只要有gcc编译环境即可这里不过多介绍。 对于windows读者安装好最新的VisualStudio即可。没有安装VisualStudio的读者可以前往https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/下载。 本文是在Winodws平台使用VisualStudio 2022编译环境运行。 2.2 编写编译代码 注意实际的编译代码由Cython实现我们只是简单使用。主要是设置本地需要编译成pyd(或so)的python文件无其他复杂内容, 读者可以直接拿去使用注意修改代码根路径即可。创建文件compile.py内容如下 import os from setuptools import setup from distutils.extension import Extension from distutils.command.clean import clean from Cython.Distutils import build_extdef load_all(root):out []if os.path.isdir(root):out.append((root, True))names os.listdir(root)for name in names:p os.path.join(root, name)if os.path.isdir(p):out load_all(p)else:out.append((p, False))else:out.append((root, False))return outdef load_files(root, exts(py,)):out []for (p, is_dir) in load_all(root):if not is_dir:ext p.split(.)if len(ext) 1 and ext[-1] in exts:out.append(p)return outdef get_packages(root):out []for (p, is_dir) in load_all(root):if is_dir:out.append(p)return out# ex_files参数可以支持不在src文件夹下的文件进行加密 def get_extensions(root):py_files load_files(root, exts(py,))ext_names map(lambda x: x.replace(os.path.sep, .)[:-3], py_files) def make_extension(ext_name):ext_path ext_name.replace(., os.path.sep) .pyext Extension(ext_name, [ext_path], include_dirs[.])ext.cython_directives {language_level: 3}return extextensions map(lambda x: make_extension(x), ext_names)return list(extensions)# 对加密后的pypyc和c文件进行清除 class CleanCode(object):def clean_build(self, distribution):clean_command clean(distribution)clean_command.all Trueclean_command.finalize_options()clean_command.run()def delete(self, root, exts):src_files load_files(root, extsexts)for source_file in src_files:if os.path.basename(source_file):os.remove(source_file)def clean_pro(self, root):self.delete(root, exts(pyd, pyc, c, so))def delete_source_code(self, root):self.delete(root, exts(py, c)) MODULE_NAME mobilenet_test # 给项目名字 root src # 继承Cython的build_ext类 class CustomBuildExt(build_ext, CleanCode):def run(self):self.clean_pro(root)build_ext.run(self)self.clean_build(self.distribution)self.delete_source_code(root) # 清理源代码只保留编译后文件setup(nameMODULE_NAME,packagesget_packages(root),ext_modulesget_extensions(root),cmdclass{build_ext: CustomBuildExt} # 自定义的CustomBuildExt )注意第73行代码定义了需要编译的python代码根目录。执行上面代码后会自动清理掉原始的python源码读者需要做好备份。如果读者想保留原始python代码将第81行注释即可。具体执行以上代码命令为 python compile.py build_ext --inplace执行后项目结构如下 编译后的算法代码是二进制汇编代码已经无法反编译 原始的算法代码无需任何修改继续执行test.py文件: python test.py输出如下 404 0.8282396可以看到输出内容一模一样 3 获取源码 关注公众号Python学习实战公众号聊天界面回复Cython示例获取完整源码。 如果您觉得本文有帮助辛苦您点个不需花钱的赞您的举手之劳将对我提供了无限的写作动力 也欢迎关注我的公众号Python学习实战 第一时间获取最新文章。
http://www.zqtcl.cn/news/596763/

相关文章:

  • 大型企业网站设计案例免费在线看片
  • 云南网站开发公司找哪家网站弹出式链接后台怎么做
  • 电商网站的支付模块怎么做企业网站建设招标文件
  • 旅游在线网站开发十八个免费的舆情网站
  • 网站怎么申请百度小程序火车头采集发布wordpress
  • 外贸网站的推广技巧有哪些莱芜网吧
  • 溧阳城乡建设局网站ps中网站页面做多大的
  • sns社交网站 有哪些wordpress开发分类筛选
  • 黄石网站建设教程网上怎样查询企业资质
  • 国内设计师交流网站怎样做自己的网站钻钱
  • 无锡专业网站推广网络营销组合策略
  • 网站建设的安全威胁中国建设银行的网站色彩
  • 中小型企业网站建设与管理潍坊做网站哪家公司最好
  • 广州白云机场网站建设免费的网站模版
  • 商务网站建设策划书51网站怎么打开
  • 一个网站里面只放一个图片怎么做中国十大网络公司排名
  • 仓库网站开发怎么看一个网站做外链
  • 网站代码编辑器中国十大黑科技
  • 深圳网站建设一尘互联遵义网站开发哪家好
  • 室内设计师灵感网站汕头网站制作全过程
  • 网站改版是什么意思自己做的小网站分享
  • 秦皇岛公司做网站wordpress社交分享非插件
  • 做物流的都是上什么网站网络维护工程师工资多少
  • 莱芜市网站建设设计设计师互联网
  • 中国设计网网址山东seo网络营销推广
  • 常德市做公司网站的公司网站连接如何做二维码
  • 淮安网站设计蜜雪冰城网络营销论文
  • 网页设计与网站建设 入门必练宝安网站建设(深圳信科)
  • 黄石网站开发joomla 宠物网站模板
  • 网站建设公司成就需要详细填写