pytorch学习笔记 1. pytorch基础 tensor运算

pytorch与tensorflow是两个近些年来使用最为广泛的机器学习模块。开个新坑记录博主学习pytorch模块的过程,不定期更新学习进程。 文章较为适合初学者,欢迎对代码和理解指点讨论,下面进入正题。

import torch
import numpy as npt1 = torch.tensor([1,2,3,4],dtype=torch.float64)
print(t1)
print(type(t1))
print(t1.size())

在这里插入图片描述

与numpy基本一致,tensor可以用于创建多维的array(张量)。

c = t1[0] + t1[1]
print(c)

在这里插入图片描述

对单元素进行加减乘除运算,得到的结果仍然是一个tensor。

x = torch.tensor(3.)
w = torch.tensor(4.,requires_grad=True) # only calculate the deriative when necessary
b = torch.tensor(5., requires_grad=True)y = w * x + b # 正向传播过程y.backward() # 反向传播,计算梯度的过程
print("dy/dx : "x.grad)
print("dy/dw : ",w.grad)
print("dy/db :"b.grad)

在这里插入图片描述
只有requires_grad属性为真的张量,在反向传播的过程中会计算梯度。

与numpy数组之间的转换

因为很多通常使用的数据,使用的是numpy矩阵的形式,pytorch也提供了一些函数用于将numpy数组转换为张量。
一般而言,将numpy ndarray转换为tensor的方法有以下三种 :

np_matrix = np.array([1,3,5,7,9])
test1 = torch.tensor(np_matrix)
test2 = torch.from_numpy(np_matrix)
test3 = torch.as_tensor(np_matrix)

实际测试中会发现,直接使用tensor构建的实例会新分配一个内存,而使用from_numpy与as_tensor两个方法与之前的矩阵是统一个内存,不会重新分配内存。因此在优化内存方面可以优先使用后两个函数。(tips : 在将numpy数组转换为tensor时需要注意精度问题,pytorch一般使用float32)

tensor的数据类型转换

使用 long float short int 等等方法,可以改变张量的数据类型,numpy方法可以将tensor转回numpy矩阵。

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

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

相关文章

2019年区块链的主旋律是中间层协议

2019年区块链的主旋律是中间层协议 过去一年加密资产市场从其峰值下跌超过85%的市值。但对我,一个坚定的区块链企业家,这实际上是一件好事,区块链的未来看起来比以往任何时候都更有希望。2017年ICO热潮开始的疯狂至少产生了一个强烈的积极影响…

Java枚举的内容可以使用map的方式

枚举的内容可以使用map的方式 package com.chinamobile.framework.common.enums;import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import jav…

tensorflow gpu windows配置步骤教学

本文主要针对在windows10环境下的tensorflow配置问题,在linux和mac等其他环境中的配置就不过多赘述(windows总是那个问题最多的环境,建议使用linux 😃)。 本文中配置的环境为 python 3.8.5 tensorflow-gpu 2.4.1 1. 更新nvidia显卡驱动至最…

numpy一维数组永远为列向量

import numpy as np a np.array([1,3,4,5]) print(a.shape) a np.transpose(a) print(a.shape) print(a)a np.ravel(a) print(a.shape) print(a)a a.reshape((1,4)) print(a.shape)输出如下 (4,) (4,) [1 3 4 5] (4,) [1 3 4 5] (1, 4)我们会发现,对于一维的数…

【BJOI 2019】奥术神杖

题意 你有一个长度为 $n$ 的模板串(由 $0-9$ 这 $10$ 个数字和通配符 $.$ 组成),还有 $m$ 个匹配串(只由 $0-9$ 这 $10$ 个数字组成),每个匹配串有一个魔力值 $v_i$。你要把模板串的每个 $.$ 都换成一个数字…

keras模型中的默认初始化权重

权重的初始化,决定了模型训练的起点。一个良好的初始化可以加快训练过程,同时避免模型收敛至局部最小值。为了在训练过程中避免使得权重的变化总沿着同一个方向,我们尽量避免将所有权重都初始化为同一个值,如全0矩阵或全1矩阵。 …

java oracle的枚举错误

public enum OracleErrorTypeEnum implements BaseEnum {ORA00001("ORA-00001","不允许有重复的数据"),ORA00017("ORA-00017","请求会话以设置跟踪事件"),ORA00018("ORA-00018","超出最大会话数"),ORA00019(&quo…

C# 篇基础知识10——多线程

1.线程的概念 单核CPU的计算机中,一个时刻只能执行一条指令,操作系统以“时间片轮转”的方式实现多个程序“同时”运行。操作系统以进程(Process)的方式运行应用程序,进程不但包括应用程序的指令流,也包括运…

keras中mean square error均方误差理解

机器学习中,针对不同的问题选用不同的损失函数非常重要,而均方误差就是最基本,也是在解决回归问题时最常用的损失函数。本文就keras模块均方误差的计算梳理了一些细节。 首先看一下均方误差的数学定义 : 均方误差是预测向量与真实向量差值的…

Java并发Semaphore信号量的学习

public class MyThreadTest {private final static Semaphore semaphore new Semaphore(2);// 设置2个车位public static void main(String[] args) {System.out.println("start");p(semaphore, true, 1);p(semaphore, false, 2);p(semaphore, false, 3);p(semaphor…

快速理解binary cross entropy 二元交叉熵

Binary cross entropy 二元交叉熵是二分类问题中常用的一个Loss损失函数,在常见的机器学习模块中都有实现。本文就二元交叉熵这个损失函数的原理,简单地进行解释。 首先是二元交叉熵的公式 : Loss−1N∑i1Nyi⋅log⁡(p(yi))(1−yi)⋅log(1−p(yi))Loss …

Docker搭建自己的GitLab

Docker搭建自己的GitLab docker 介绍 **GitLab: ** GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务 **Docker: ** Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖…

kolla-ansible-----常用命令

常用命令 kolla-ansible prechecks -i multinode #部署前环境检测 kolla-genpwd #生成/etc/kolla/password.yml密码配置文件 kolla-ansible post-deploy -i multinode #生成认证文件 kolla-ansible mariadb_recovery -i /opt/mutinode #恢复数据库 kolla-ansible -i multi…

python numpy 分离与合并复数矩阵实部虚部的方法

在进行数字信号处理的过程中,我们往往有对短时傅里叶变换频谱(spectrogram)进行分析的需求。常见的分析手段对应欧拉公式分为两种,要么使用模与相位的形式,要么使用实部虚部。本文分享一个简单的将复数光谱图分解为实部与虚部以及将两个部分重…

flowable 任务节点多实例使用

我们在使用Flowable 工作流引擎的时候,最常用的肯定是任务节点,因为在OA系统、审批系统、办公自动化系统中核心的处理就是流程的运转,在流程运转的时候,可能我们有这样的一个需求,在一个任务节点的时候,我们…

LeetCode Range Sum Query Immutable

2131231转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/10873807.html

如何使用python导入mat格式的数据并整理

mat格式是一般而言的matlab数据的存储格式,对于经常要混用matlab和python的数据处理相关的问题,我们往往需要将matlab中的数据导入至python,本文给出了相关的方法。 from scipy.io import loadmat import numpy as npdict_mat loadmat(&quo…

Java静态类使用 使用 service

Springboot中如果希望在Utils工具类中,使用到我们已经定义过的Dao层或者Service层Bean,可以如下编写Utils类: 1. 使用Component注解标记工具类StatisticsUtils: 2. 使用Autowired(Autowired和Resource的区别不再介绍)注入我们需…

Codeforces 1144D Deduction Queries 并查集

Deduction Queries 用并查集维护前缀的关系&#xff0c; 在同一个联通块内两两之间的异或值都是已知的。 每个点再维护一个和它当前父亲的异或值&#xff0c; 压缩路径的时候更新一下就好了。 #include<bits/stdc.h> #define LL long long #define LD long double #defin…

python一步将npy数据保存成mat

import scipy.io as io io.savemat("dataname.mat", {data: npy_data})使用scipy库中的io模块&#xff0c;只需一步就可以将npy矩阵保存为mat格式文件&#xff0c;第一个参数是保存路径&#xff0c;第二个参数需要输入一个字典&#xff0c;data键对应需要保存的数据。…