Python高级架构模式知识点总结
作者:小妮浅浅 时间:2023-12-19 14:36:47
1、残差连接是目前常用的组件,解决了大规模深度学习模型梯度消失和瓶颈问题。
通常,在10层以上的模型中追加残差连接可能有帮助。
from keras import layers
x = ...
y = layers.Conv2D(128, 3, activation='relu', padding='same')(x)
y = layers.Conv2D(128, 3, activation='relu', padding='same')(y)
y = layers.MaxPooling2D(2, strides=2)(y)
# 形状不同,要做线性变换:
residual = layers.Conv2D(128, 1, strides=2, padding='same')(x) # 使用 1×1 卷积,将 x 线性下采样为与 y 具有相同的形状
y = layers.add([y, residual])
2、标准化用于使模型看到的不同样本更相似,有助于模型的优化和泛化。
# Conv
conv_model.add(layers.Conv2D(32, 3, activation='relu'))
conv_model.add(layers.BatchNormalization())
# Dense
dense_model.add(layers.Dense(32, activation='relu'))
dense_model.add(layers.BatchNormalization())
3、深度可分离卷积层,在Keras中被称为SeparableConv2D,其功能与普通Conv2D相同。
但是SeparableConv2D比Conv2D轻,训练快,精度高。
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras import layers
height = 64
width = 64
channels = 3
num_classes = 10
model = Sequential()
model.add(layers.SeparableConv2D(32, 3,activation='relu',input_shape=(height, width, channels,)))
model.add(layers.SeparableConv2D(64, 3, activation='relu'))
model.add(layers.MaxPooling2D(2))
model.add(layers.SeparableConv2D(64, 3, activation='relu'))
model.add(layers.SeparableConv2D(128, 3, activation='relu'))
model.add(layers.MaxPooling2D(2))
model.add(layers.SeparableConv2D(64, 3, activation='relu'))
model.add(layers.SeparableConv2D(128, 3, activation='relu'))
model.add(layers.GlobalAveragePooling2D())
model.add(layers.Dense(32, activation='relu'))
model.add(layers.Dense(num_classes, activation='softmax'))
model.compile(optimizer='rmsprop', loss='categorical_crossentropy')
Counter实例扩展:
from collections import Counter
list1 = ['a','b','c',23,23,'a','d','b','e']
counter1 = Counter(list1)
print(counter1)
print(counter1['a'])
#1.1.1统计不同单词的数目
print(len(set(list1)))
#1.1.2对统计结果进行分组 下面的方法表示分为4组,不填默认全部分组,以列表
#存储,里面元素是tuple对象
print(counter1.most_common(4))
#1.1.3 elements()获取Counter()生成对象的所有键名,重复的几个会全部打印
# 该方法返回一个迭代器对象
keylist = counter1.elements()
print(keylist)
print(list(keylist))
#1.1.4 update(x) 更新计数器 把x的内容加入到原来计数器中
#x可以作为字符串,列表,元组,集合,但是不能作为字典,纯数字,否则报错
list2 = ['a','d','f','q',2,3,2,3,4]
print(counter1)
counter1.update(list2)
print(counter1)
#1.1.5 substract(x) 更新计数器 把x代表的次数减少1,默认减少1,(通过字典形式指定一次减少的个数)
#,不存在则减为-1,依次减,作用与update()相反
counter1.subtract('a')
print(counter1)
counter1.subtract(['a','b',2])
print(counter1)
来源:https://www.py.cn/jishu/jichu/32600.html
标签:Python,高级架构模式
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
ThinkPHP删除栏目(实现批量删除栏目)
2024-06-07 15:34:01
![](https://img.aspxhome.com/file/2023/2/122482_0s.png)
网页设计应急小技巧
2011-10-05 18:52:57
Python命名空间与作用域深入全面详解
2022-03-07 08:36:10
![](https://img.aspxhome.com/file/2023/1/115491_0s.jpg)
实例讲解启动mysql server失败的解决方法
2008-12-26 17:27:00
用JavaScript实现PHP的urlencode与urldecode函数
2023-11-23 08:18:14
MySQL数据备份方法的选择与思考
2024-01-19 21:02:50
python2和python3在处理字符串上的区别详解
2021-10-07 03:29:31
python使用pandas抽样训练数据中某个类别实例
2021-03-02 02:56:14
Form Post提交容量大的数据
2011-03-31 10:53:00
MySQL中字符串索引对update的影响分析
2024-01-20 19:00:10
php session 检测和注销
2023-11-17 22:45:02
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2023-02-14 05:37:10
![](https://img.aspxhome.com/file/2023/7/117457_0s.png)
SQLServer 使用rand获取随机数的操作
2024-01-24 00:22:11
![](https://img.aspxhome.com/file/2023/6/96166_0s.jpg)
Python的控制结构之For、While、If循环问题
2023-09-16 21:42:45
ACCESS如何打印窗体中当前显示的记录
2008-11-20 16:31:00
Python数据分析之 Matplotlib 3D图详情
2021-03-05 21:20:33
![](https://img.aspxhome.com/file/2023/6/69466_0s.webp)
pandas时间序列之如何将int转换成datetime格式
2023-03-09 07:50:34
![](https://img.aspxhome.com/file/2023/1/84061_0s.png)
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2023-07-07 21:08:18
可能是最通俗的一篇介绍markdown的文章
2022-08-09 09:48:43
![](https://img.aspxhome.com/file/2023/2/131862_0s.png)
Python numpy和matlab的几点差异介绍
2023-12-14 23:26:39