【Tensorflow2.0】tensorflow中的Dense函数解析
目录
- 1 作用
- 2 例子
- 3 与torch.nn.Linear的区别
- 4 参考文献
1 作用
注意此处Tensorflow版本是2.0+。
由于本人是Pytorch用户,对Tensorflow不是很熟悉,在读到用tf写的代码时就很是麻烦。如图所示,遇到了如下代码:
h = Dense(units=adj_dim, activation=None)(dec_in)
Dense层就是全连接层,对于层方式的初始化的时候,layers.Dense(units,activation)函数一般只需要指定输出节点数Units和激活函数类型即可。输入节点数将根据第一次运算时输入的shape确定,同时输入、输出节点自动创建并初始化权值w和偏置向量b。
下面是Dense的接口
Dense(units,activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)
units, 代表该层的输出维度
activation=None, 激活函数.但是默认 liner
use_bias=True, 是否使用b 直线 y=ax+b 中的 b
此处没有写 iuput 的情况, 通常会有两种写法:
1 : Dense(units,input_shape())2 : Dense(units)(x) #这里的 x 是以张量.
Dense(n)(x):=ReLU(Wx+b)Dense \ (n) \ (x):=ReLU(Wx+b)Dense (n) (x):=ReLU(Wx+b)
W 是权重函数, Dense() 会随机给 W 一个初始值。所以这里跟Pytorch的nn.linear()一样。
2 例子
# 使用第一种方法进行初始化
# 作为 Sequential 模型的第一层,需要指定输入维度。可以为 input_shape=(16,) 或者 input_dim=16,这两者是等价的。
model = Sequential()
model.add(Dense(32, input_shape=(16,)))
# 现在模型就会以尺寸为 (*, 16) 的数组作为输入,
# 其输出数组的尺寸为 (*, 32)# 在第一层之后,就不再需要指定输入的尺寸了:
model.add(Dense(32))
3 与torch.nn.Linear的区别
# Pytorch实现
trd = torch.nn.Linear(in_features = 3, out_features = 30)
y = trd(torch.ones(5, 3))
print(y.size())
# torch.Size([5, 30])# Tensorflow实现
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(30, input_shape=(5,), activation=None))
————————————————————————————————————
tfd = tf.keras.layers.Dense(30, input_shape=(3,), activation=None)
x = tfd(tf.ones(shape=(5, 3)))
print(x.shape)
# (5, 30)
上面Tensorflow的实现方式相同,但是我存在疑惑
4 参考文献
[1]dense层、激活函数、输出层设计
[2]Dense(units, activation=None,)初步
[3]深入理解 keras 中 Dense 层参数
[4]tensorflow - Tensorflow 的 tf.keras.layers.Dense 和 PyTorch 的 torch.nn.Linear 的区别?
【Tensorflow2.0】tensorflow中的Dense函数解析相关推荐
- tensorflow中的norm()函数 | axis=0,axis=1,axis=2
tensorflow中的norm函数作用是用来求L1_norm范数和Eukl_norm范数. 本篇文章主要目的是讲解axis的含义,所以默认都是用L1_norm范数,方便理解. 首先,来看一下2维的情 ...
- 【Tensorflow】Tensorflow中的卷积函数(conv2d、slim.conv2d、depthwise_conv2d、conv2d_transpose)
[fishing-pan:https://blog.csdn.net/u013921430 转载请注明出处] 前言 卷积是卷积神经网络中最主要.最重要的运算.想必大家最早接触卷积的概念就是在初高中 ...
- rectpuls函数 matlab,Matlab中的rectpuls函数解析
Matlab中的rectpuls函数解析 Matlab中的rectpuls函数解析 1.先看Matlab中的解释: This MATLAB function returns a continuous, ...
- sklearn中的train_test_split()函数解析
sklearn中的train_test_split()函数解析 train_test_split()函数:机器学习中用于分割数据集(训练集和测试集) X_train,X_test,y_train,y_ ...
- tensorflow中的正则化函数在_『TensorFlow』正则化添加方法整理
一.基础正则化函数 tf.contrib.layers.l1_regularizer(scale, scope=None) 返回一个用来执行L1正则化的函数,函数的签名是func(weights). ...
- Pytorch中torch.argmax()函数解析
一. torch.argmax()函数解析 1. 官网链接 torch.argmax(),如下图所示: 2. torch.argmax(input)函数解析 torch.argmax(input) → ...
- C++STL中的unique函数解析
一.总述 unique函数属于STL中比较常用函数,它的功能是元素去重.即"删除"序列中所有相邻的重复元素(只保留一个).此处的删除,并不是真的删除,而是指重复元素的位置被不重复的 ...
- c分布 的程序设计语言,#2020学习打卡##C程序设计语言# C语言中的随机数函数解析...
在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器. 有关如何产生随机数的理论有许多,如果要详细地讨论,需要厚 ...
- tensorflow中的shape函数理解
在tensorflow中经常用到shape函数 例如 import tensorflow as tf a = tf.constant([[1.,2.,3.],[4.,5.,6.],[7.,8.,9.] ...
最新文章
- Telerik RadGridView动态增删行及行列操作
- pyspark reduce代码示例
- View的setOnClickListener的添加方法
- ionic 安装 inappbrowser 插件后编译失败的解决办法
- YouTube高效传输策略:节省14%带宽 用户体验提升
- java 做项目踩坑,web项目踩坑过程
- 程序员面试金典 - 面试题 08.11. 硬币(背包DP)
- 学术工业界大佬联合打造:ML产品落地流程指南
- openssl 生成证书_CentOS7 httpd(Apache)SSL 证书部署
- 4-1 ADO.NET简介 4
- Java尚能饭否?10月编程排行榜告诉你!
- 华为手机怎么录屏?十分简单,轻松学会
- build_ext --inplace 是什么意思
- Maven中央仓库地址整理
- 计算机网络安全与维护论文致谢,计算机论文致谢词
- 直线插补c语言源程序,老哥们求助直线插补程序,带图我不会图啊
- P1048 [NOIP2005 普及组] 采药
- Robin六种常用负载均衡算法源码解析
- 基于springboot+mybatis的高考志愿推荐及填报系统
- android书籍推荐!分析Android未来几年的发展前景,灵魂拷问
热门文章
- 【逗老师带你学IT】PRTG监控系统通过企业微信推送告警消息
- 中华万年历大数据平台演进
- html skype加好友代码,分享个刚学会的电子邮件中加Skype即时联络标签的方法~有用请顶...
- Literate Programming和产品开发
- 2020高压电工模拟考试题及高压电工模拟考试软件
- 华为HCIA-DatacomV1.0模拟考试
- U盘版便携式Linux制作
- 支撑互联网的基石 tcp/ip,5个方面全面解析
- java float.parsefloat_java.lang.Float.parseFloat()方法实例
- 9.2日第一次python作业