
开一个新坑,之前关于深度学习的学习部分,更多的在于理解what,虽然看了很多网课,包括李宏毅、吴恩达,以及李沐的,但是有句话说的好,
"What I cannot create, I do not understand."只有创造一个东西,才算真正弄懂了一个问题。
所以深感我以前学习深度学习时,只会耍弄各种框架,也就是模块随插随用,会的是模块缝合的技巧,现在想来,其实和API调用者(就是广义的调包)其实并没有本质上的区别,惭愧!
所以,虽然我已经不是本科生了,年纪也大了,也还是要活到老,学到老,有推荐这本书的我就拿来看一看,
打算每天看一章左右(当然按照现有的基础,是每天花费半小时左右啃一下),然后抽空更完这部分。
一,目录
二,python温习
1,只用numpy+matplotlib

2,面向对象编程:class类

python
class Man:
def __init__(self,name):
self.name = name
print("Initialized!")
def hello(self):
print("hello"+self.name+"!")
def goodbye(self):
print("good-bye"+self.name+"!")
m = Man("David")
m.hello()
m.goodbye()
3,numpy数组类
1,列表到数组:推荐用np.asarray()构建数组
如果要生成多维数组,可以使用嵌套列表list:

data type即dtype数据类型
2,数组运算:element-wise逐元素运算和广播机制(size不匹配)

广播运算:
专门用于形状不同的数组(张量tensor)之间进行运算


3,访问数组元素:
注意在python中的数组元素是0-indexed,注意和其他常用的1-indexed体系进行区分!
python
for row in A:
print(row)
for element in row:
print(element)

坍缩成一维的运算:flatten
默认是按row,也就是横向坍缩(符合人的直觉,就是一行一行定义的多维矩阵,自然也就是一行一行的坍缩)


凡是涉及到bool型的数组,都可以当做是index下标来运算或使用

4,matplotlib类可视化
这一块可以查看我之前更新的博客
python
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0,10,0.1)
y = np.sin(x)
z = np.cos(x)
t = x
# plot绘图
plt.plot(x,y,label="sin(x)")
plt.plot(x,z,label="cos(x)")
plt.plot(x,t,label="linear x")
# legend标签
plt.legend() # legend标签
# xy label以及title标题
plt.xlabel("x")
plt.ylabel("y")
plt.title("plot of sin,cos and linear")
# show展示
plt.show()



python
import matplotlib.pyplot as plt
from matplotlib.image import imread
myimg = imread("/data2/IDR_LLM/dive_dl/【源代码】深度学习入门:基于Python的理论与实现/dataset/lena.png")
plt.imshow(myimg)
plt.show()

