网络建设过程笔记

这篇博客记录了网络建设过程中的关键知识点,涉及Python的os模块、PyTorch的nn.Module基类、初始化方法、张量操作、模型理解和调试工具等。通过介绍os.walk遍历文件夹、nn.Conv2d参数解析、张量初始化方法如xavier_uniform_和constant_,以及数据加载和保存等,帮助读者深入理解深度学习网络的构建和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搭建网络时遇到的一些小知识点只用作自己学习:
1.os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,这时就离不了os模块,本节内容将对os模块提供的函数进行详细的解读
https://blog.youkuaiyun.com/menghuanshen/article/details/79055994

2.torch.nn.Module所有神经网络的基类,模型类继承这个基类

3.def init(self)和def init(self, 参数1,参数2,···,参数n)两种初始化形式,就类似于C++类中的构造函数。

4.super().init() 觉super是用于继承父类的方法 ,不用super的话,直接重写父类的方法会覆盖掉父类的方法,所以通过super来重写又能继承父类的方法
5. nn.Conv2d torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode=‘zeros’, device=None, dtype=None)
参数kernel_size, stride, padding,dilation可以是:单个int- 在这种情况下,高度和宽度尺寸使用相同的只;a tupleof two ints – 在这种情况下,第一个int用于高度维度,第二个int用于宽度维度
BIAS如果True,则向输出添加可学习的偏差
6. self.modules() self.children()只包括网络模块的第一代儿子模块,而self.modules()包含网络模块的自己本身和所有后代模块.self.modules()是继承torch.nn.Modules()的类拥有的方法,以迭代器形式返回此前声明的所有layers
7. Python中的 isinstance() 函数,是Python中的一个内置函数,用来判断一个函数是否是一个已知的类型,类似 type()
8. torch.nn.init.xavier_uniform_(张量,增益= 1.0)[来源]
根据了解训练深度前馈神经网络的难度- Glorot, X. & Bengio, Y. (2010) 中描述的方法使用均匀分布填充输入张量值。
9. torch.nn.init.constant_(张量, val )[来源]用值填充输入张量 \text{val}值.
10. from torchsummary import summary summary(model, (3, 224, 224))将模型的层数,形状,参数数量打印出来。summary(model, input_size=(channels, H, W))
11. assert就是一个断言函数。不满足条件则直接触发异常,不必执行接下来的代码
12.os.walk:os.walk会遍历我们指定的文件夹,这没什么问题!
每一层遍历:root保存的就是当前遍历的文件夹的绝对路径;
dirs保存当前文件夹下的所有子文件夹的名称(仅一层,孙子文件夹不包括)files保存当前文件夹下的所有文件的名称
13.os.path.join() 函数功能:连接两个或更多的路径名组件
Path1 = 'home’Path2 = 'develop’Path3 = ‘code’
Path20 = os.path.join(Path1,Path2,Path3)
Path20 = home/develop/code
14.sorted(iterable, *, key=None, reverse=False)
从可迭代的项中返回一个新的排序列表。
有两个可选的命名关键字参数。
key:指定一个参数的函数,该函数用于从每个列表元素中提取比较键:key = str.lower。 默认值为None(直接比较元素)。
如果列表中的元素是字符串,那么key = str.lower可以使比较都按小写字母的ASCII码进行比较。
reverse:是一个布尔值。 如果设置为True,则列表元素将按照每个比较相反的方式进行排序。从小到达大排序改为从大到小。
12. split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
str.split(str="",num=string.count(str))[n]
13. 从numpy.ndarray创建一个张量。
说明:返回的张量和ndarray共享同一内存。对张量的修改将反映在ndarray中,反之亦然。返回的张量是不能调整大小的。
a = numpy.array([1, 2, 3])
t = torch.from_numpy(a)
t
tensor([ 1, 2, 3])
t[0] = -1
a
array([-1, 2, 3])
14. torch.utils.data.TensorDataset 数据加载实用程序的核心
15. torch.utils.data.DataLoader 数据加载器支持映射式和迭代式数据集,支持单进程或多进程加载、自定义加载顺序以及可选的自动批处理(排序)和内存锁定。
16. for i,ch in enumerate(a): # i为索引序号,ch 为元素
print i ,ch # 同时打印
17. add_scalar( tag , scalar_value , global_step=None , walltime=None )[来源]
将标量数据添加到汇总中。

参数
tag ( string ) – 数据标识符

scalar_value ( float或string/blobname ) – 要保存的值

global_step ( int ) – 要记录的全局步长值

walltime ( float ) – 可选覆盖默认 walltime (time.time()) 与事件纪元后的秒数
18. torch.save( obj , f , pickle_module = pickle , pickle_protocol = DEFAULT_PROTOCOL , _use_new_zipfile_serialization = True )[来源]
将对象保存到磁盘文件。

另请参阅:保存和加载张量

参数
obj –保存d 对象

f – 类文件对象(必须实现写入和刷新)或包含文件名的字符串或 os.PathLike 对象

pickle_module – 用于酸洗元数据和对象的模块

pickle_protocol – 可以指定覆盖默认协议
19. np.zeros(2,5)
两个一行五列
array([
[0,0,0,0,0]
[0,0,0,0,0]])
20. seek() 方法用于移动文件读取指针到指定位置seek(offset,whence=0)offset:开始的偏移量,也就是代表需要移动偏移的字节数whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。默认为0
21. Image.frombytes def frombytes(mode, size, data, decoder_name=“raw”, *args):
22. open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
23. array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会
24. 最近着手处理一个文件拷贝的问题处理,用到os.path.basename(),返回path最后的文件名。若path以/或\结尾,那么就会返回空值。
eg:
path=‘D:\优快云’
os.path.basename(path)=优快云
25.torch.no_grad() 是一个上下文管理器,被该语句 wrap 起来的部分将不会track 梯度.所以如果有不想被track的计算部分可以通过这么一个上下文管理器包裹起来。这样可以执行计算,但该计算不会在反向传播中被记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值