学习Jittor第一步

因为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第一步已经完成!

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是用Jittor训练手写识别数据集的步骤: 1. 准备数据集:你可以使用MNIST数据集或者自己制作一个手写数字数据集。对于MNIST数据集,你可以使用以下代码来加载数据集: ```python import jittor.transform as transform from jittor.dataset.mnist import MNIST train_loader = MNIST(train=True, transform=transform.Compose([ transform.Resize(28), transform.ImageNormalize() ])) test_loader = MNIST(train=False, transform=transform.Compose([ transform.Resize(28), transform.ImageNormalize() ])) ``` 2. 定义模型:你可以选择使用卷积神经网络(CNN)或者全连接神经网络(FNN)。以下是一个简单的CNN模型: ```python import jittor as jt class Net(jt.Module): def __init__(self): self.conv1 = jt.nn.Conv(1, 10, kernel_size=5) self.conv2 = jt.nn.Conv(10, 20, kernel_size=5) self.fc1 = jt.nn.Linear(320, 50) self.fc2 = jt.nn.Linear(50, 10) def execute(self, x): x = jt.relu(jt.max_pool2d(self.conv1(x), 2)) x = jt.relu(jt.max_pool2d(self.conv2(x), 2)) x = x.view(x.size(0), -1) x = jt.relu(self.fc1(x)) x = self.fc2(x) return x ``` 3. 定义损失函数和优化器:你可以选择使用交叉熵损失函数和随机梯度下降(SGD)优化器。 ```python loss_fn = jt.nn.CrossEntropyLoss() optimizer = jt.optim.SGD(net.parameters(), lr=0.01, momentum=0.5) ``` 4. 训练模型:使用以下代码训练模型。 ```python for epoch in range(10): total_loss = 0.0 for i, (inputs, targets) in enumerate(train_loader): optimizer.zero_grad() outputs = net(inputs) loss = loss_fn(outputs, targets) loss.backward() optimizer.step() total_loss += loss.item() print("Epoch {}, loss={}".format(epoch+1, total_loss/(i+1))) ``` 5. 测试模型:使用以下代码测试模型。 ```python correct = 0 total = 0 with jt.no_grad(): for i, (inputs, targets) in enumerate(test_loader): outputs = net(inputs) _, predicted = jt.max(outputs.data, 1) total += targets.size(0) correct += (predicted == targets).sum().item() print("Accuracy: {}%".format(100*correct/total)) ``` 这样,你就可以用Jittor训练手写识别数据集了!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值