深度学习numpy与tensor基础知识、关系与区别,通过pytorch构建网络加载数据


开局首先一句话

import numpy as np
import torch

一、numpy在深度学习中的经典用法

1、生成numpy数组

  • 直接转换np.array(list1)
  • random模块生成np.random.random([3,3])
  • 创建特定形状np.zeros([3,3])
  • arange/linspace模块生成np.arange(1,4,0.5),只有一个数字的话为1-数字

2、获取元素

  • 与python中类似,直接nd11[3:6]
  • random.choice函数可以从指定样本中随机抽取数据

3、Numpy的数学运算

  • 对应相乘:A*B/np.numtiply(a,b)
  • 点乘运算:np.dot()

4、数组变形

4.1、更改数组形状

  • reshape改变向量的维度(不改变向量本身)
import numpy as np
arr = np.arange(6).reshape(2,-1)
  • resize改变向量的维度(修改向量本身)np.arange(6).resize(2,-1)
  • T转置 np.arrange(12).reshape(3,4).T
  • revel展平
import numpy as np
arr = np.arange(6).reshape(2,-1)
print(arr)
print(arr.ravel('F'))#按列优先展平
print(arr.ravel())#按行优先展平
  • flatten 将矩阵转成向量,卷积与全连接层之间进行
a = np.floor(10*np.random.random((3,4)))
print(a)
print(a.flatten())
  • squeeze压缩掉含1的维度arr.squeeze().shape
  • transposearr2 = np.arange(24).reshape(2,3,4).transpose(1,2,0)

4.2、合并数组

  • append在后面添加np.append(a,b,axis=0)0为行合并,1为列合并
  • concatenate沿指定轴连接数组或者矩阵np.concatenate((a,b),axis=0)
  • stack沿指定轴堆叠数组或矩阵np.stack((a,b),axis=0)

5、批量处理

import numpy as np

data_train = np.random.randn(10000,2,3)
print(data_train.shape)
np.random.shuffle(data_train)
batch_size = 100
for i in range(0,len(data_train),batch_size):
    x_batch_sum = np.sum(data_train[i:i+batch_size])
    print("第{}批次,该批次数据的和:{}".format(i,x_batch_sum))

6、通用函数

两种基本对象:ndarry和ufunc对象

  • math与numpy:numpy.sin比math.sin快近10倍
  • 循环与向量:向量要比循环快的多

7、广播机制

import numpy as np
A = np.arange<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值