带你读《2022技术人的百宝黑皮书》——淘宝逛逛ODL模型优化总结(4)

简介: 带你读《2022技术人的百宝黑皮书》——淘宝逛逛ODL模型优化总结(4)

带你读《2022技术人的百宝黑皮书》——淘宝逛逛ODL模型优化总结(3) https://developer.aliyun.com/article/1246919?groupCode=taobaotech



全连接网络优化


背景


全连接网络是深度模型中非常常见的一种结构,其基本形式就是矩阵乘法Matmul、矩阵加法BiasAdd及激活函数LeakyRelu。在TensorFlow 1.x中,全连接网络的实现使用的是keras.layers.Dense类。其中当inputs的rank大于2时,调用的是standard_ops.tensordot接口。


@tf_export('keras.layers.Dense')
class Dense(Layer):
 ……
 def call(self, inputs):
 inputs = ops.convert_to_tensor(inputs, dtype=self.dtype)
 rank = common_shapes.rank(inputs)
 if rank > 2:
 # Broadcasting is required for the inputs.
 outputs = standard_ops.tensordot(inputs, self.kernel, [[rank - 1], [0]])
 ……


通过tensordot代码可以看出,其生成的tf图是非常复杂的,而且还包含了Gather这样与Cuda Graph不兼容的算子。这不仅会增加全连接网络的调用成本,还会使得Cuda Graph对全连接网络的优化十分受限。我们使用Netron对TensorFlow的原生全连接网络进行了可视化,可以很明显地看出,全连接网络的结构十分的复杂。


image.png



带你读《2022技术人的百宝黑皮书》——淘宝逛逛ODL模型优化总结(5) https://developer.aliyun.com/article/1246917?groupCode=taobaotech

相关文章
|
测试技术 双11
带你读《2022技术人的百宝黑皮书》——我在淘宝做弹窗,2022 年初的回顾与展望(11)
带你读《2022技术人的百宝黑皮书》——我在淘宝做弹窗,2022 年初的回顾与展望(11)
带你读《2022技术人的百宝黑皮书》——我在淘宝做弹窗,2022 年初的回顾与展望(11)
|
移动开发 安全 API
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(4)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(4)
|
移动开发 开发工具 容器
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(2)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(2)
|
运维
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(6)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(6)
|
安全
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(5)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(5)
|
移动开发 缓存 前端开发
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(1)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(1)
134 0
|
数据采集 监控 安全
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(3)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(3)
|
移动开发 JSON 小程序
带你读《2022技术人的百宝黑皮书》——我在淘宝做弹窗,2022 年初的回顾与展望(1)
带你读《2022技术人的百宝黑皮书》——我在淘宝做弹窗,2022 年初的回顾与展望(1)
122 0
带你读《2022技术人的百宝黑皮书》——我在淘宝做弹窗,2022 年初的回顾与展望(2)
带你读《2022技术人的百宝黑皮书》——我在淘宝做弹窗,2022 年初的回顾与展望(2)
带你读《2022技术人的百宝黑皮书》——我在淘宝做弹窗,2022 年初的回顾与展望(9)
带你读《2022技术人的百宝黑皮书》——我在淘宝做弹窗,2022 年初的回顾与展望(9)