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

oneflow深度学习框架使用问题总结(Windows/Linux)

目录

1.简述

2.在Windows下使用Oneflow深度学习框架(错误记录,谨慎,官方不支持,需要WSL)

2.1安装Anaconda

2.1创建虚拟环境

2.2安装Pytorch

2.3安装Pycharm

2.4 安装Oneflow

3.在Linux下使用Oneflow深度学习框架

2.1安装Ubuntu18.04系统

2.2安装Anaconda(Linux)

2.3安装Pytorch

2.4安装Linux版Pycharm

2.5安装Oneflow

1.简述

起源:OneFlow 是北京一流科技有限公司旗下的开源工业级通用深度学习框架,于 2018 年 9 月发布闭源版,2020 年 7 月正式开源。

与 PyTorch 对比,在计算机机制方面,OneFlow采用静态图执行,并通过编译优化提高运行效率,同时也提供了一定动态计算图的灵活性,PyTorch 使用动态计算图,操作在编写时执行,图形动态构建,更灵活,适合研究和实验中的实时调整;此外,与Pytorch相比,OneFlow 的分布式性能是其核心优势,在大规模分布式训练场景下表现出色,能更好地应对大数据、大模型、大计算的挑战;上手难易程度上对比,Pytorch基础入门简单,学习曲线较缓,OneFlow 的学习曲线相对较陡,新手需要花费一定时间和精力去掌握其核心概念和使用方法。

tensorflow与OneFlow 对比,在计算机机制方面,TensorFlow 使用静态计算图,需先定义计算图,再在会话中运行并输入数据,灵活性欠佳;在复杂分布式场景下,TensorFlow 虽也支持分布式计算,但易用性和性能比不上Oneflow;在生态社区方面,TensorFlow 有更庞大的社区和更广泛的应用基础,其生态系统包括各种工具和库,如 TensorBoard 等,文档也非常全面,Oneflow在这方面相对不够完善。

2.在Windows下使用Oneflow深度学习框架(错误记录,谨慎,官方不支持,需要WSL)

2.1安装Anaconda

具体安装网址:Download Anaconda Distribution | Anaconda(官网),也可以通过网盘进行安装夸克网盘分享(ZHOUPUYU博客提供),具体安装步骤按照网络上教程安装即可。

2.1创建虚拟环境

安装完成后打开Anaconda Prompt创建虚拟环境,具体如下图所示:

打开Anaconda Prompt,创建虚拟环境,具体命令为

conda create -n your_name python=3.X

等待创建完成之后进入到虚拟环境中,通常使用的命令为:

conda activate your_name

即可进入名为your_name的虚拟环境中,对应的包可以在诸如D:\anoconda\setAnaconda\envs下搜寻到。

2.2安装Pytorch

创建CPU版的Pytorch(如果有N卡(GPU训练),需要配置CUDA和cudnn环境),去到Pytorch的官网去复制命令,PyTorch官网具体如下图所示:

如果使用CPU版命令可直接复制:

pip install torch torchvision torchaudio

等待安装完成即可。

2.3安装Pycharm

进入PyCharm:适用于数据科学和 Web 开发的 Python IDE,下载可使用的Pycharm对应的版本,可以下community版,进行安装。具体如下图:

完成后点击右下角Add New Interpreter选择上面创建的虚拟环境。

2.4 安装Oneflow

在Pycharm中打开一个项目,博主采用的是之江实验室和一流科技公司共同研发的EfficientnetV2图像分类算法,在控制台运行

pip install -r requirements.txt

批量安装算法所需要的依赖项,。有的安装失败需要单独去安装,如Oneflow,个人建议直接运行

pip install oneflow

上述命令直接安装oneflow的CPU版,GPU版本参照OneFlow -- 全新一代深度学习框架 - OneFlow安装完成后需要安装flowvision,此处在Windows下就会出现问题,在Linux不会,在Linux下直接运行(具体情况看下文)

pip install flowvision

在Windows下安装flowvision出的问题是pip安装库报错TypeError: canonicalize_version() got an unexpected keyword argument ‘strip_trailing_zero‘解决方案是降级setuptools版本到64之后,再进行安装。具体降级的命令为

pip install setuptools==64

即可完成。接下来返回提示错误raise RuntimeError("This package is a placeholder. Please install oneflow following the instructions in https://github.com/Oneflow-Inc/oneflow#install-oneflow")
RuntimeError: This package is a placeholder. Please install oneflow following the instructions in https://github.com/Oneflow-Inc/oneflow#install-oneflow,该错误无法解决转战Linux环境进行。

3.在Linux下使用Oneflow深度学习框架

2.1安装Ubuntu18.04系统

使用的Linux环境是VM Workstation16(授权码可以在网上搜索到)虚拟机(ISO镜像为Ubuntu18.04)按照Ubuntu18.04安装教程(很详细)_ubuntu18安装-CSDN博客链接就可以安装完成Ubuntu18.04系统的安装。此外进入系统设置网络环境(IP/桥接模式 or 其他)、并设置ssh,可以远程访问,关闭防火墙。此外,可以装个搜狗输入法。

2.2安装Anaconda(Linux)

在线安装:在Index of /找到对应的Anaconda的Linux版本,下载到本地,使用命令

bash Anaconda3-xxxx.xx-x-Linux-x86_64.sh

遇到权限不足时,使用命令

sudo chmod 777 xxxxxxx.sh

再进行安装。遇到Please,按压ENTER,一路回车即可,直至出现yes/no,选择yes,安装完成。接下来修改环境变量

vi ~/.bashrc
export PATH="/root/ananconda3/bin:$PATH" #按照实际路径
#使用环境变量生效
source ~/.bashrc
#查看安装版本
conda --version

初始化conda

conda init

设置启动conda, 是否激活默认base环境,默认为True

conda config --set auto_activate_base false

为conda添加清华源

#添加镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2#显示检索路径
conda config --set show_channel_urls yes#显示镜像通道
conda config --show channels

接下来创建虚拟环境

conda create -n your_name python=3.X

进入虚拟环境为

conda activate your_name

删除所有的该虚拟环境为

conda remove -n your_name --all

2.3安装Pytorch

创建CPU版的Pytorch(如果有N卡(GPU训练),需要配置CUDA和cudnn环境),去到Pytorch的官网去复制命令,PyTorch官网具体如下图所示:

按照命令进行安装:CPU版本安装为

pip install torch torchvision torchaudio

进行验证

python
import torch
torch.__version__

至此,完成Pytorch的全部安装,如遇到算法开发中Pytorch版本匹配不上的问题,可以直接卸载,安装其他的Pytorch的版本。

2.4安装Linux版Pycharm

进入PyCharm:适用于数据科学和 Web 开发的 Python IDE,下载可使用的Pycharm对应的版本,可以下community版,进行安装。使用linux的压缩包。解压压缩包

tar -zxvf pycharm-community-xxxx.x

进入解压后文件的bin目录,打开终端,输入指令

. pycharm.sh

就可以运行软件

此外运用这种方式比较繁琐的话可以创建Pycharm的桌面快捷方式,使用命令

sudo gedit /usr/share/applications/Pycharm.desktop

在弹出的文件窗口输入以下代码文件

[Desktop Entry]
Type=Application
Name=Pycharm
GenericName=Pycharm3
Comment=Pycharm3:The Python IDE
Exec=sh /home/username/package/pycharm-2019.2.4/bin/pycharm.sh #根据实际情况改写
Icon=/home/username/package/pycharm-2019.2.4/bin/pycharm.png #根据实际情况改写
Terminal=pycharm
Categories=Pycharm;

在全部软件中添加到左边栏中,具体如下图:

进而完成Pycharm的安装。

2.5安装Oneflow

同样,此处按照Windows安装方式安装oneflow,安装flowvision时要注意,针对EfficientnetV2算法不能安装flowvision==0.2.0,否则会一直持续出现问题,在这个算法环境中,安装的flowvision为0.0.54,命令为,对应的oneflow==0.9.0。

pip install flowvision==0.0.54

此外,python还报错:ImportError:libcudnn_cnn_infer:cannot open shared object file

解决方法:

conda install cudatoolkit==11.8.0
pip install nvidia-cudnn-cu11==8.7.0.84

至此,EfficientnetV2算法可以训练,可以进行预测。如下图:

至此完成Oneflow的首次使用,本篇博客仅用于学习记录总结!如有问题欢迎补充。

相关文章:

oneflow深度学习框架使用问题总结(Windows/Linux)

目录 1.简述 2.在Windows下使用Oneflow深度学习框架(错误记录,谨慎,官方不支持,需要WSL) 2.1安装Anaconda 2.1创建虚拟环境 2.2安装Pytorch 2.3安装Pycharm 2.4 安装Oneflow 3.在Linux下使用Oneflow深度学习框…...

论文研读:AnimateDiff—通过微调SD,用图片生成动画

1.概述 AnimateDiff 设计了3个模块来微调通用的文生图Stable Diffusion预训练模型, 以较低的消耗实现图片到动画生成。 论文名:AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning 三大模块: 视频域适应…...

SQLAlchemy示例(连接数据库插入表数据)

背景需求 连接数据库,插入表中一些数据。 其用户是新建用户,所以只能插入,不能更新。 再次输入数据则使用更新数据语法,这个没调试。 #! /usr/bin/env python # -*- coding: utf-8 -*-from sqlalchemy import create_engine, …...

Springboot3国际化

国际化实现步骤 Spring Boot 3 提供了强大的国际化支持,使得应用程序可以根据用户的语言和区域偏好适配不同的语言和地区需求。 添加国际化资源文件: 国际化资源文件通常放在 src/main/resources 目录下,并按照不同的语言和地区命名&#xf…...

阿尔萨斯(JVisualVM)JVM监控工具

文章目录 前言阿尔萨斯(JVisualVM)JVM监控工具1. 阿尔萨斯的功能2. JVisualVM启动3. 使用 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff…...

框架专题:反射

1. 什么是反射? 简单来说,反射是一种程序自省的能力,即在程序运行时动态地获取其结构信息或操作其行为。这包括类、方法、属性等元信息。反射的核心在于让代码变得更加动态化,从而突破静态语言的限制。 以Java为例,反…...

【Go】context标准库

文章目录 1. 概述1.1 什么是 Context1.2 设计原理1.3 使用场景源码分析核心:Context接口4个实现6个方法TODO 和 BackgroundWithCancelcancelpropagateCancel 绑定父对象WithTimeout 和 WithDeadlineWithValue总结参考1. 概述 基于版本: go1.22.3/src/context/context.go 1.1…...

LLMs之o3:《Deliberative Alignment: Reasoning Enables Safer Language Models》翻译与解读

LLMs之o3:《Deliberative Alignment: Reasoning Enables Safer Language Models》翻译与解读 导读:2024年12月,这篇论文提出了一种名为“审慎式对齐 (Deliberative Alignment)”的新方法,旨在提高大型语言模型 (LLM) 的安全性。论…...

git设置项目远程仓库指向github的一个仓库

要将你的Git项目设置为指向GitHub上的远程仓库,你需要执行以下步骤: 创建GitHub仓库: 登录到你的GitHub账户。点击右上角的 “” 号,选择 “New repository” 创建一个新的仓库。填写仓库的名称,可以添加描述&#xff…...

实战演练JDK的模块化机制

实战演练JDK的模块化机制--楼兰 带你聊最纯粹的Java ​ 你发任你发,我用Java8。你用的JDK到什么版本了?很多开源框架都已经开始陆续升级JDK版本了。你对于JDK8往后陆陆续续更新的这些版本有什么感觉吗? ​ 很多人会说其实并没有太多的感觉。JDK的新版本不断推出一些不痛不痒…...

jdk17+springboot3项目加密部署

最近项目需要在第三方服务器部署,由于没有交付源码。所以需要将项目加密后再部署。 网上找了一圈,发现xjar这个开源项目,可以将代码加密后进行部署。看了下正是我需要的。 于是按照文档打包加密,但启动的时候居然报错。 这个结…...

rm -rf 删除/下bin lib lib64 sbin软链接系统恢复

背景 不小心删除了/bin、/lib、/lib64和/sbin这些目录的软链接,导致系统中的各种命令都无法正常使用。在尝试多种方法后,包括添加环境变量和使用绝对路径执行命令无法恢复,最终不重装完美解决。 [rootcentos-8 /]# ll 总用量 36 drwxr-xr-x …...

并发与竞争

并发与竞争 并发与竞争的产生 Linux是一个多任务操作系统,肯定会存在多个任务共同操作同一段内存或者设备的情况,多个任务甚至中断都能访问的资源叫做共享资源,就和共享单车一样。在驱动开发中要注意对共享资源的保护,也就是要处…...

Java后端开发 ”Bug“ 分享——订单与优惠卷

“优惠券风波”:一段代码引发的线上事故 起因:优惠券功能上线 故事的开始源于公司新上线的一项促销活动——在用户未使用优惠券时,系统会自动赠送一张优惠券。这个功能不仅能提升用户体验,还能拉动平台的销售额。为了赶上活动上…...

Linux系统之tee命令的基本使用

Linux系统之tee命令的基本使用 一、tee命令介绍二、tee命令的使用帮助2.1 tee命令的help帮助2.2 tee命令帮助解释 三、tee命令的基本使用3.1 写入文件3.2 追加文件3.3 结合sudo命令3.4 结合EOF使用 四、注意事项 一、tee命令介绍 tee 是 Linux 和 Unix 系统中的一个命令&#x…...

idea 8年使用整理

文章目录 前言idea 8年使用整理1. 覆盖application配置2. 启动的时候设置编辑空间大小,并忽略最大空间3. 查询类的关系4. 查看这个方法的引用关系5. 查看方法的调用关系5.1. 查看被调用关系5.2. 查看调用关系 6. 方法分隔线7. 选择快捷键类型8. 代码预览插件9. JReb…...

多个微服务 Mybatis 过程中出现了Invalid bound statement (not found)的特殊问题

针对多个微服务的场景,记录一下这个特殊问题: 如果启动类上用了这个MapperScan注解 在resource 目录下必须建相同的 com.demo.biz.mapper 目录结构,否则会加载不到XML资源文件 。 并且切记是com/demo/biz 这样的格式创建,不要使用…...

k8s,service如何找到容器

Kubernetes之所以需要Service,一方面是因为Pod的IP不是固定的,另一方面则是因为一组Pod实例之间总会有负载均衡的需求 被selector选中的Pod,就称为Service的Endpoints,查看方式: kubectl get endpoints hostnames需要…...

观察者模式和发布-订阅模式有什么异同?它们在哪些情况下会被使用?

大家好,我是锋哥。今天分享关于【观察者模式和发布-订阅模式有什么异同?它们在哪些情况下会被使用?】面试题。希望对大家有帮助; 观察者模式和发布-订阅模式有什么异同?它们在哪些情况下会被使用? 1000道 …...

docker compose deploy fate cluster

官方文档 写的不清晰 KubeFATE,用于生成部署脚本,链接 部署机就是下载了 KubeFATE的主机;运行机就是要安装fate容器的主机(部署机和运行机可以相同) 两个主机:并非必须 centos7,Ubuntu也行Doc…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...