用pytorch训练模型-入门
python基础
列表 list
可以理解为变量数组。
-
定义:
name = ['Alan', 'Bishop', 'He', 'Xavier'] -
修改元素:
name[2] = 'Srivastava' -
末尾添加元素:
name.append('Yann') -
任意位置添加元素:
name.insert(2, 'Ren') -
删除元素:
del name[0]
元组 tuple
可以理解为常量数组。
-
定义:
bet = ('alpha', 'beta', 'gamma') -
不允许增删改
字典 dictionary
可以理解为key-value pair组,或者说hashmap。
-
定义:
tech = {'name':'ResNet', 'author':'He', 'year':2016} -
修改元素:
tech['author'] = 'He et al.' -
添加元素:
tech['category'] = 'CNN' -
删除元素:
del tech['year']
切片 slice
取出list/tuple的一部分。
有三个参数 x[start:end:stride]。其中start和end是左闭右开的,可以为负数,表示倒数第几个;stride默认为1且可省略。
类 class
class A(B):
# initialization method
def __init__ (self, a, b, c, d):
super().__init__()
# do something
# other method
def foo:
#do something
# instantiate sample
x = A(a, b, c, d)
其中,__init__是初始化方法,在实例化时会自动调用。__init__的第一个参数固定为self,代表Student类本身,其余的参数则是自己定义的在初始化时需要用到的参数。
class A(B)表示A继承自B,在A的初始化方法中使用super().__init__()执行父类B的初始化函数(或者按照python2的习惯写作super(A, self).__init__())。需要指出的是,python处理菱形继承问题的方法是将所有类置于MRO链上,super()指代的是MRO链的下一个(不一定是父类),比如继承关系A(B, C) B(D) C(D)的MRO链可能是:A->B->C->D->object,此时super().__init__()或super(A, self).__init__()会沿着MRO链自然地执行上述父类的初始化,但B.__init__(),C.__init__()是错误的行为,会导致D被重复初始化。
torch基础
tensor操作参见 d2l学习笔记。

如何使用torch, torchvision等库写代码、训练模型。适合对象:初学者,预先学习过基础的理论知识,有阅读代码或LLM辅助写过简单模型代码的经历,想要训练自己模型代码能力
浙公网安备 33010602011771号