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

跟着刘二大人学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**5fig=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 npxs=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*wdef 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=0for 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_sumprint('\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.hqwc.cn/news/18706.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Efficient Methods for Non-stationary Online Learning

Dynamic regret Adaptive regret 假设: 算法过程: Regret分析

D. Pairs of Segments

Problem - D - Codeforces 思路:其实它求的就是不相交区间的最大数量,但是它的区间是两个区间合并得到,所以我们可以直接将所有能合并的区间直接合并,然后做一遍不相交区间的最大数量,这样存在一种问题就是一个区间会不…

SolidWorks二次开发-BOM球标和材料表

目标先到100,实在没什么好写的了,先把这两个简单的功能列一下吧。 private void btnInsertBalloon_Click(object sender, EventArgs e){//插入对应的BOM气泡球 球标//操作步骤->选中视图,执行自动球标命令SldWorks swApp Utility.Conne…

Flowable边界事件-定时边界事件

定时边界事件 定时边界事件一、定义1. 图形标记2. 完整的流程图3. XML标记 二、测试用例2.1 定时边界事件xml文件2.2 定时边界事件测试用例 总结 定时边界事件 一、定义 时间达到设定的时间之后触发事件 由于定时边界事件和开始定时事件几乎差不多,四种情况我就不一…

linux入门练级篇 第三讲 基本指令3

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 &#x1f…

揭秘Dalio全天候策略:基于中美市场ETF的量化回测

01 引言 Ray Dalio 是全球最大的对冲基金——桥水联合基金(Bridgewater Associates)的创始人和首席投资官,其投资哲学在金融界中广为人知。他开创了一种被称为"全天候策略"(All Weather Strategy)的投资策略…

【微信小程序-uniapp】CustomPicker 自定义单项选择器组件

1. 效果图 2. 组件完整代码 <template><view class="custom-picker"><view :class=<

mybatis 注解方式操作 sql

前言:注解的方式在某些查询的时候还是比较方便的 mybatis注解配置 mapUnderscoreToCamelCase 配置Select 注解Insert 注解Delete 注解 和 Update 注解Provider 注解 mapUnderscoreToCamelCase 配置 别名设置&#xff0c;mapUnderscoreToCamelCase 配置 配置可以将 带下划线 sq…

AtcoderABC309场

A - NineA - Nine 题目大意 判断两个数是否相邻且水平排列&#xff0c;即它们在同一行并且相邻。可以直接打印或者找规律 思路分析 可以直接打印或者找规律 时间复杂度 O&#xff08;1&#xff09; 代码 #include<bits/stdc.h> using namespace std; int main(){i…

LeetCode 打卡day59--单调栈

一个人的朝圣 — LeetCode打卡第59-60天 知识总结 Leetcode 739. 每日温度题目说明代码说明 Leetcode 496. 下一个更大元素 I题目说明代码说明 Leetcode 84. 柱状图中最大的矩形题目说明代码说明 知识总结 今天做了单调栈的三道题 总结了一个模版套路: 寻找下一个更大的数 f…

冯诺依曼体系结构理解

冯诺依曼体系结构理解 1.介绍2.特点介绍3.举例说明4.注意 1.介绍 冯诺依曼体系结构&#xff08;Von Neumann Architecture&#xff09;是一种计算机体系结构&#xff0c;以数学家冯诺依曼&#xff08;John von Neumann&#xff09;的名字命名。它是一种经典的计算机设计范式&a…

使用Python爬虫和数据可视化,揭示人口大国历年人数的变迁

前言 人口大国通常在全球人口排名中位居前列&#xff0c;其人口数量远远超过其他国家。而印度和中国这两个国家的人口数量均已经超过14亿&#xff0c;而当前全球的人口总数也不过刚刚突破80亿而已&#xff0c;妥妥的天花板级别存在。或许是中国和印度在人口方面的表现太过“耀…