动手深度学习V2

第二章节学习
**

import  torch
import numpy as np

x = torch.arange(12)
print(x)
output: tensor([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

# 2行3列
x = x.reshape(2, -1)
print(x)
tensor([[ 0,  1,  2,  3,  4,  5],
        [ 6,  7,  8,  9, 10, 11]])

# 轴0-2 轴1-3 轴2-4
zeros = torch.zeros((2, 3, 4))
print(zeros)
tensor([[[0., 0., 0., 0.],
         [0., 0., 0., 0.],
         [0., 0., 0., 0.]],

        [[0., 0., 0., 0.],
         [0., 0., 0., 0.],
         [0., 0., 0., 0.]]])


# 随机生成
randn = torch.randn(2, 3)
print(randn)

# 运算符 + - * / **(次方)
x = torch.tensor([1, 2, 3], dtype=torch.float)
y = torch.tensor([1, 2, 3], dtype=torch.float)
x + y, x - y, x * y, x / y, x ** y


# x^e 若dtype不是Long 会报错
torch.exp(x)

# 张量连接dimension维度 dim=0为轴0 dim=0为轴1 dim=0时候张量轴-0的长度相加 为1时轴1的长度相加
x = torch.arange(4, dtype=torch.float32).reshape(2, 2)
y = torch.tensor([[1, 1], [2, 2]], dtype=torch.float32)
print(x)
print(y)
print(torch.cat((x, y), dim=0))
print(torch.cat((x, y), dim=1))

#  广播机制
#  当两个张量的长宽不一样的时候 广播机可以将矩阵扩大 将一个矩阵复制另外一个矩阵的列 另外一个矩阵肤质一个矩阵的行 然后进行元素相加
x = torch.arange(3).reshape((3, 1))
y = torch.arange(2).reshape((1, 2))
print(x, y) 
# 进行相加3 * 1 * 1 * 2 = 3 * 2所以是3行2列的张量
print(x + y)

张量广播机制的相关知识连接
**https://zhuanlan.zhihu.com/p/60365398**
**https://www.cnblogs.com/jiaxin359/p/9021726.html**

x = torch.arange(4, dtype=torch.float32).reshape(2, 2)
# 对张量进行求和
x.sum()

# 判断两个张量之间是否相等 x == y 若相等那么相同元素的位置为True 1  否则为False 0
x = torch.arange(4, dtype=torch.float32).reshape(2, 2)
y = torch.tensor([[1, 1], [2, 2]], dtype=torch.float32)
x == y

# 索引和切片 -1是最后一个元素的索引
x = torch.arange(4, dtype=torch.float32).reshape(2, 2)
print(x[-1])
print(x[0:2])
# 将指定元素写入矩阵中
x[1, 1] = 100
print(x)
# 给多个元素赋相同的数值 ::表示轴1的所有元素
# 此时为0 1 行的全部列的数值修改为200
x[0:2, :] = 200
print(x)

# id()函数显示变量的内存分配地址
z = torch.zeros_like(x)
print('z的内存地址:', id(z))
z[:] = x + x
print('z的内存地址:', id(z))

# 将其他对象转换为python对象
# numpy张量是在cpu上运行 torch是在GPU上运行 进行了加速的作用 二者之间可以进行相互转换
A = x.numpy()
B = torch.tensor(A)
type(A), type(B)
# numpy -> tensor
np_data=np.arange(6).reshape((2,3))
torch_data=torch.from_numpy(np_data)
print(torch_data)
#torch ->numpy
tensor2array=torch_data.numpy()
print(tensor2array)

# 作业1
# 将本节中的条件语句X == Y更改为X < Y或X > Y,然后看看你可以得到什么样的张量。
# 1:True   0: False
X = torch.arange(12, dtype=torch.float32).reshape((3,4))
Y = torch.tensor([[2.0, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])
X>Y, X<Y
output: (tensor([[0, 0, 0, 0],
         [1, 1, 1, 1],
         [1, 1, 1, 1]], dtype=torch.uint8),
 tensor([[1, 0, 1, 0],
         [0, 0, 0, 0],
         [0, 0, 0, 0]], dtype=torch.uint8))

# 作业2
# 用其他形状(例如三维张量)替换广播机制中按元素操作的两个张量。结果是否与预期相同?
# 轴-0  轴-1 轴-2都会进行赋值
# 广播机制 1.两个数组的后维(最末尾开始算起的维度)的轴长度相等 
#          2.其中一方的长度为1 
a = torch.arange(6).reshape((3, 1, 2))
b = torch.arange(4).reshape((1, 2, 2))
c = a + b
print(c)
output:tensor([[[0, 2],
         [2, 4]],

        [[2, 4],
         [4, 6]],

        [[4, 6],
         [6, 8]]])




**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《动手深度学习 v2》是一本介绍深度学习的教材,通过动手实践的方式帮助读者深入理解深度学习的理论和实践。这本书由李沐等人共同编写,内容包含了深度学习的基本概念、算法原理以及实际应用等方面。 这本书的优点之一是注重实践,通过大量的案例和代码实现,读者可以亲自动手搭建深度学习模型,并通过实际操作来理解算法的工作原理。此外,书中还涵盖了一些最新的深度学习技术和应用,帮助读者跟上深度学习领域的最新发展。 《动手深度学习 v2》也具有一定的难度,对于初学者来说需要一定的数学和编程基础才能更好地理解和实践。但是,书中的难点都有详细的解答和说明,读者可以在遇到困难时查看相关解析,提升学习效果。 总的来说,《动手深度学习 v2》是一本非常实用的深度学习教材,适合有一定基础的读者学习和实践。通过阅读这本书,读者可以系统地学习深度学习的基本概念和算法,掌握如何应用深度学习解决实际问题,进而在深度学习领域有更深入的理解和应用。 ### 回答2: 《动手深度学习 v2》pdf是一本深度学习入门的教程,适合初学者学习深度学习的理论和实践。这本教程由作者李沐、阿斯顿·张剑锋等人合作撰写,涵盖了深度学习的基本概念、神经网络的构建、常见深度学习模型、计算机视觉、自然语言处理等领域的应用。 这本教程的特点是注重实践,每个章节都提供了大量的代码示例和实验指导,让读者可以动手实践,巩固所学知识。同时,教程还配有相应的代码库和数据集,读者可以下载使用。 教程通过讲解深度学习的基本概念和原理,帮助读者建立起对深度学习的整体认识。然后,通过实例演示和实践,教会读者如何使用深度学习框架搭建神经网络,并进行训练和优化。 另外,这本教程也介绍了一些常见的应用领域,如计算机视觉和自然语言处理。读者可以学习到如何使用深度学习来解决图像分类、目标检测、文本生成等问题。 最后,这本教程还提供了一些深度学习的进阶内容,如深度生成模型和强化学习等,供读者深入学习和拓展。 总的来说,《动手深度学习 v2》pdf是一本很好的深度学习入门教程,通过动手实践和实例演示,帮助读者快速入门和掌握深度学习的基本知识和应用技巧。对于想要学习深度学习的初学者来说,是一本非常有价值的教材。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值