Gokix

一言(ヒトコト)

关注我

用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]。其中startend是左闭右开的,可以为负数,表示倒数第几个;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学习笔记

torchvision基础

Dataset

Dataloader

posted @ 2026-01-31 15:40  Gokix  阅读(2)  评论(0)    收藏  举报