pytorch线性模型 学习前要学习的基础知识

news2024/9/22 17:25:55

跟着刘二大人学pytorch,补全一下我的基础缺失
1.numpy基础

import numpy as np
from PIL import Image
a=np.array([1,2,3]) #生成一维数组
print(a)
b=np.arange(1,4)#创建等差数组,默认等差是1,数组为1,2,3,取头不取尾
print(b)
c=np.arange(1,5,2)#创建等差数组,等差是2,数组为1,3
print(c)
d=np.sin(a)#三角函数sin
print(d)
e=np.zeros((3,2))#创建全0数组3行两列
print(e)
f=np.ones((1,2))#创建全1数组,1行2列
print(f)
g=np.random.rand(3,4)#生成三行四列的随机数
print(g)
h=np.linspace(5,10,2)#前两个参数是区间的范围,第三个参数是输出样本的总数
print(h)
i=np.dot(a,b)#两个向量点乘
print(i)
j=c*h
print(j)

输出

[1 2 3]
[1 2 3]
[1 3]
[0.84147098 0.90929743 0.14112001]
[[0. 0.]
 [0. 0.]
 [0. 0.]]
[[1. 1.]]
[[0.63021331 0.97544754 0.33707492 0.0178626 ]
 [0.12280448 0.10036752 0.7717687  0.07250648]
 [0.13538487 0.99980146 0.19301595 0.54427721]]
[ 5. 10.]
14
[ 5. 30.]
(512, 768, 3)

numpy还可用来裁剪图片

im=Image.open('dataset/train/ants_image/0013035.jpg')
im.show()#显示图片
im=np.array(im)#将图片转为numpy数组
print(im.shape)
im_cropped=im[50:400,200:600,:] #裁剪出图片的某个部分
Image.fromarray(im_cropped).show()#先将其转为图片,然后展示图片

2.Python zip() 函数
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
测试代码:

a=[1,2,3]
b=[4,5,6]
c=zip(a,b)
c=list(c)
print(c)
[(1, 4), (2, 5), (3, 6)]

在线性模式中会用到
for x_val,y_val in zip(X,Y):

3.pyplot绘图
最基础的线性图

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,1,11)# 从0到1,个数为11的等差数列
print(x)
y = 2*x
plt.plot(x,y)
plt.show()

画两条线设置图例

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,1,11)# 从0到1,个数为11的等差数列
y1 = 2*x
y2 = 3*x
plt.figure()
plt.plot(x,y1,label='y1')
plt.plot(x,y2,label='y2')
plt.legend()
plt.show()

4.mplot3d绘图
曲面图

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
#生成3d曲面图
def f(x,y):
    return x**5+y**5

fig=plt.figure() #生成画框

ax=Axes3D(fig)

X=np.arange(0,2,0.1)
Y=np.arange(0,2,0.1)

X,Y=np.meshgrid(X,Y) #网格化

ax.plot_surface(X,Y,f(X,Y),rstride=1,cstride=1)

plt.title('mplot3d',fontsize=20)
plt.show()

在这里插入图片描述
散点图

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np


xs=np.random.randint(30,40,100)
ys=np.random.randint(20,30,100)
zs=np.random.randint(10,20,100)

xs2=np.random.randint(50,60,100)
ys2=np.random.randint(30,40,100)
zs2=np.random.randint(50,70,100)

xs3=np.random.randint(10,30,100)
ys3=np.random.randint(40,50,100)
zs3=np.random.randint(40,50,100)

fig=plt.figure()
ax=Axes3D(fig)
ax.scatter(xs,ys,zs)
ax.scatter(xs2,ys2,zs2,c='r',marker='^')
ax.scatter(xs3,ys3,zs3,c='g',marker='*')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_ylabel('z')
plt.title('mplot3d')
plt.show()

在这里插入图片描述
5.只有w一个参数的线性回归

import matplotlib.pyplot as plt
import numpy as np
X=[1.0,2.0,3.0]
Y=[2.0,4.0,6.0]

def forward(x):
    return x*w

def loss(x,y):
    y_pred=forward(x)
    return (y-y_pred)*(y-y_pred)

w_list=[]
mse_list=[]

#穷举法
for w in np.arange(0.0,4.1,0.1):
    print('w=',w)
    l_sum=0
    for x_val,y_val in zip(X,Y):
        y_pred_val=forward(x_val)
        loss_val=loss(x_val,y_val)
        l_sum=loss(x_val,y_val)+l_sum
        print('\t',x_val,y_val,y_pred_val,loss_val)
    print('MSE=',l_sum/3)
    w_list.append(w)
    mse_list.append(l_sum/3)

plt.plot(w_list,mse_list,label='线性模型',color='r',linestyle='--')
plt.ylabel('loss')
plt.xlabel('w')
plt.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/732826.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring 详解三 IOC(spring实例化及后处理器)

Spring实例化基本流程 Spring在容器初始化的时候,读取XMl配置,将其封装成BeanDefinition(Bean定义)对象,描述所有bean的信息 BeanDefinition会注册存储到beanDefinitionMap集合中 Spring框架遍历beanDefinitionMap,使用反射创建Be…

pycharm如何给一串中文快捷加引号(方法二)

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 商人重利轻别离,前月浮梁买茶去。 大家好,我是皮皮。 一、前言 前几天在Python白银群【此类生物】问了一个Pycharm基础的问题&a…

SpringBoot配置动态定时任务

1.配置ScheduledTask 主要是实现SchedulingConfigurer,动态传入cron。 package com.hzl.boot.config;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Propert…

使用promise函数封装post请求,封装aes加解密方法,并进行请求头aes加密,封装sm2国密加解密,进行请求体数据加密,响应数据解密。

export default {async post(url, params { header:{}, data:{} }, showLoading true){if(showLoading){uni.showLoading({title:"加载中",mask:true})}let options{header:{...params.header},url:globalParams.basepathurl.url,data:{...params.data}}//渠道 ae…

Devops系列五(CI篇之pipeline libraray)jenkins将gitlab helm yaml和argocd 串联,自动部署到K8S

一、说在前面的话 本文是CI篇的上文,因为上一篇已经作了总体设计,就不再赘述,有需要的请看前文。 我们将演示,使用CI工具–jenkins,怎么和CD工具–argocd串联,重点是在Jenkins该怎么做。准备工作和argocd等…

C++常用库函数 5.输入和输出函数

函数名&#xff1a;fclose 函数原型&#xff1a;int fclose(FILE *stream)&#xff1b; 参数&#xff1a;streamFILE 结构的指针。 所需头文件&#xff1a;<cstdio> 返回值&#xff1a;如果该流成功关闭&#xff0c;fclose 返回0。如果出错&#xff0c;则返回 EOF。 功…

AI在金融领域的应用

AI金融领域 信贷业务 个人信贷单笔数额小、数量大&#xff0c;需要大量的人力和时间投入&#xff0c;信贷审核的数据也呈现出分散化、碎片化的特点。同时传统金融机构和互联网金融公司的风控环节中&#xff0c;普遍存在信息不对称、成本高、时效性差、效率低等问题&#xff0c…

动态规划之343 整数拆分(第6道)

题目&#xff1a; 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例&#xff1a; 解法&#xff1a; 其实可以从1开始遍历 j &#xff0c;然后有两种…

Mysql之视图,索引,备份与恢复

目录 一&#xff0c;视图 1.视图是什么&#xff1f; 2.视图的重要性&#xff1f; 3.那些地方使用视图&#xff1f; 4.基本语法 二&#xff0c;索引 1.索引是什么&#xff1f; 2.索引的重要性&#xff1f; 3.索引的种类&#xff1a; 4.那些地方使用索引&#xff1f; 5.…

Gateway服务集成Nacos2021.0.4错误解决

问题 gateway服务集成nacos&#xff0c;启动后报错&#xff1a; Caused by: com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information:; 版本&#xff1a; jdk:1.8 spring-b…

10_Linux中断

目录 Linux中断API函数 中断号 上半部与下半部 软中断 tasklet 工作队列 设备树中断信息节点 获取中断号 修改设备树文件 按键中断驱动程序编写 编写测试APP Linux中断API函数 先来回顾一下裸机实验里面中断的处理方法: 1.使能中断,初始化相应的寄存器。 2.注册中…

windows配置启动若依前后端项目

一、后端 1、环境准备 JDK8、Redis、Mysql、Maven【并配置镜像源】 以上工具全部使用msi/exe安装&#xff0c;并勾选添加到环境变量&#xff0c;如果没有添加到环境变量可以参考其他博主关于每种怎么配置的情况 mysql新增一个目录名为ry-vue的空数据库 2、前往若依官网下载…

MAC M1上docker rocketmq简单环境搭建和代码

工作了这么多年&#xff0c;rocketmq还没有用过&#xff0c;由于现在的工作中涉及到了&#xff0c;周六吃完午饭就开始搞&#xff0c;结果到现在3点钟才把环境弄好&#xff0c;测试代码搞起。 整个流程分成两步 安装简单的rocket环境起springboot项目测试 参考文章&#xff…

C++STL库常用库函数总结

文章目录 1.vector, 变长数组&#xff0c;倍增的思想 size() 返回元素个数empty() 返回是否为空clear() 清空front()/back() 访问第一个元素/最后一个元素push_back()/pop_back() 插入/弹出最后一个元素begin()/end() 开始元素迭代器/结尾元素迭代器[]支持…

【kafka面试题2】如何保证kafka消息的顺序性

【kafka面试题】如何保证kafka消息的顺序性 一、整体策略 如何保证kafka消息的顺序性呢&#xff0c;其实整体的策略就是&#xff1a;我们让需要有序的消息发送到同一个分区Partition。 为什么说让有序的消息发送到同一个分区Partition就行呢&#xff0c;&#xff0c;下面我们…

tidb之旅——生成列

作者&#xff1a; 有猫万事足 原文来源&#xff1a; https://tidb.net/blog/15d0fbf6 新的问题 之前弄好了TiDB集群&#xff0c;也弄好了dm集群&#xff0c;把写入流量整个切入了TiDB集群运行起来了。但是有个别比较大的日志表&#xff0c;OLAP查询的表现还是不太行。正好7…

Node中的模块引擎EJS

1.安装EJS 2.导入EJS const ejsrequire("ejs") 3.使用ejs渲染 let outer"法外狂徒" let resultejs.render(我是<%outer %>,{outer:outer}) let str我是<%outer %> let resultejs.render(str,{outer:outer}) 说明&#xff1a; 在模板中&#xf…

SpringBoot前后端分离项目,打包、部署到服务器详细图文流程

文章目录 实施步骤一、修改配置文件地址1.修改MySQL配置2.修改Redis配置3.修改日志路径和字符集配置 二、将源码压缩并上传服务器1.上传前端文件2.上传后端文件&#xff08;同上&#xff09; 三、前端项目打包1.安装依赖2.项目打包 四、后端项目打包1.项目打包&#xff08;jar包…

【软件架构设计】支持大规模系统的设计模式和原则

今天&#xff0c;即使是小型初创公司也可能不得不处理数 TB 的数据或构建支持每分钟&#xff08;甚至一秒钟&#xff01;&#xff09;数十万个事件的服务。所谓“规模”&#xff0c;通常是指系统应在短时间内处理的大量请求/数据/事件。 尝试以幼稚的方式实现需要处理大规模的服…

Linux(Ubuntu)+Qt+C++与OpenCV窗体程序使用

程序示例精选 Linux(Ubuntu)QtC与OpenCV窗体程序使用 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<Linux(Ubuntu)QtC与OpenCV窗体程序使用>>编写代码&#xff0c;代码整洁&am…