因为Jittor是基于 Linux(e.g. Ubuntu/CentOS/Arch) 或 Windows Subsystem of Linux(WSL),因为想偷懒不想搞 虚拟机+Liunx(有图形界面的),所以我选择了wsl.
1、打开Microsoft store,搜索“Ubuntu”,点击星最多的版本,直接安装。
2、因为Jittor是基于python环境的,所以启动Ubuntu后直接输入“python3” ,查看此版本Ubuntu默认的python版本
3、此时的python环境还是有最原始的程序,我们需要更新apt,输入 “sudo apt update”,更新完后用apt安装pip工具,输入
sudo apt-get purge --auto-remove python3-pip
sudo apt-get update
sudo apt-get -y install python3-pip
,安装成功后查看pip版本,输入“pip3 --version"
4、安装好python的pip安装工具后,直接安装jittor,输入”pip install jittor“,安装成功后查看所有已安装的第三方库,输入”pip list"
安装完jittor后,我们就可以使用jittor编写python代码了,但由于Ubuntu是命令行,所以我选择使用win10系统中的VS code来远程连接此Ubuntu系统,以此来编写python代码。
1、在win10上下载安装VS code
Visual Studio Code - Code Editing. Redefined
2、安装好后需要在VS code中下载用来连接wsl的插件“Remote-WSL”,当然还有Python。
3、在Ubuntu系统中输入“code .",系统会自动下载服务,为了以后能靠直接输入”code .“来启动win10上的VS code,我们需要把win10上的VS code的安装路径,比如:D:\我的软件\vstudio\VSCode\安装路径\Microsoft VS Code\bin。把该地址添加到Ubuntu的PATH环境变量中,同样的,该路径也要添加到win10系统中的环境变量中。
vim 退出命令:
w:保存内容
q:退出当前文件
wq:保存内容并退出当前文件
w!:强制保存内容
q!:强制退出当前文件
4、在VS code的左下角,选择WSL:Ubuntu,进行远程连接
5、连接完后,点击”文件“,会出现这个文件夹,然后我们就可以在该文件夹下新建文件夹来编写python程序
6、如果我们想在VS code中打开python程序,并右击选择”在终端运行python程序“,这个时候编译器是没有反应,我们需要点击”拓展“,选择Python环境,在右边点击”在WSL:Ubuntu上启用安装”,还有Pylance,
7、这个时候我们就可以去Jittor官网上复制一段代码来测试python编译环境
import jittor as jt
from jittor import Module
from jittor import nn
import numpy as np
#线性回归实例
#该模型是一个两层神经网络。 隐藏层的大小为10,激活函数为relu
class Model(Module):
def __init__(self):
self.layer1 = nn.Linear(1, 10)
self.relu = nn.Relu()
self.layer2 = nn.Linear(10, 1)
def execute (self,x) :
x = self.layer1(x)
x = self.relu(x)
x = self.layer2(x)
return x
def get_data(n): # generate random data for training test.
for i in range(n):
x = np.random.rand(batch_size, 1)
y = x*x
yield jt.float32(x), jt.float32(y)
np.random.seed(0)
jt.set_seed(3)
n = 1000
batch_size = 50
model = Model()
learning_rate = 0.1
optim = nn.SGD(model.parameters(), learning_rate)
#优化器使用简单的梯度下降,损失函数为L2距离
for i,(x,y) in enumerate(get_data(n)):
pred_y = model(x)
loss = ((pred_y - y)**2)
loss_mean = loss.mean()
optim.step (loss_mean)
print(f"step {i}, loss = {loss_mean.data.sum()}")
assert loss_mean.data < 0.005
8、程序运行结果。
至此学习Jittor第一步已经完成!