转文章原地址:
https://www.jianshu.com/p/3855908b4c29
最近在用TensorFlow实现CNN网络时用到了全连接层,在网上看了很多有关全连接层实现的代码,发现相当一部分人都还是倾向于自己构造权重矩阵W和偏移矩阵b,利用矩阵乘法实现全连接层。
而TensorFlow中封装了全连接层函数tf.layers.dense(),但是官方文档中并没有解释其详细原理。网上有部分博客对此提及,但也少有涉及到内部实现原理的。于是今天自己动手做了个对比试验,来探究一下tf.layers.dense()函数的详细原理。
先贴结论:tf.layers.dense( input, units=k )会在内部自动生成一个权矩阵kernel和偏移项bias,各变量具体尺寸如下:对于尺寸为[m, n]的二维张量input, tf.layers.dense()会生成:尺寸为[n, k]的权矩阵kernel,和尺寸为[m, k]的偏移项bias。内部的计算过程为y = input * kernel + bias,输出值y的维度为[m, k]。
以下是实验代码。
import tensorflow as tf
# 1. 调用tf.layers.dense计算
input = tf.reshape(tf.constant([[1., 2.], [

本文探讨了TensorFlow中全连接层函数tf.layers.dense()的工作原理。通过对比实验,揭示了该函数会自动生成权重矩阵和偏置项,并详细说明了内部计算过程及输出维度。结论指出,对于[m, n]输入,它创建[n, k]权重矩阵和[m, k]偏置项,计算结果为y = input * kernel + bias。"
121579846,11572608,Vue.js中的具名与作用域插槽实战解析,"['Vue.js', '前端框架', '模板语法', '组件通信']
最低0.47元/天 解锁文章
719

被折叠的 条评论
为什么被折叠?



