fully_connected与linear

1、tf.contrib.layers.fully_connected与tf.contrib.layers.linear的区别

tf.contrib.layers.fully_connected与tf.contrib.layers.linear实现一致,使用tf.contrib.layers.fully_connected一般将激活函数选项至None,因为线性变换不需要非线性变换,与此同时,tf.contrib.layers.fully_connected可以加上bias和正则项。

2、tf.contrib.layers.fully_connected简介与实例

fully_connected创建一个名为的变量weights,表示一个完全连接的权重矩阵,乘以它inputs产生一个 Tensor隐藏单位。如果normalizer_fn提供了数据(例如 batch_norm),则应用它。否则,如果normalizer_fn为None且使用了biases_initializer,biases则将创建变量并添加隐藏单位。

如果activation_fn不是None,它也会应用于隐藏单位。

fully_connected(inputs,num_outputs,activation_fn=nn.relu,normalizer_fn=None,normalizer_params=None,weights_initializer=initializers.xavier_initializer(),weights_regularizer=None,biases_initializer=init_ops.zeros_initializer(),biases_regularizer=None,reuse=None,variables_collections=None,outputs_collections=None,trainable=True,scope=None)

inputs:至少为二阶张量和最后一个维度的静态值; 即[batch_size, depth],[None, None, None, channels]。
num_outputs:整数或长整数,图层中的输出单位数。
activation_fn:激活功能。默认值是ReLU功能。将其明确设置为“无”以跳过它并保持线性激活。
normalizer_fn:使用标准化功能代替biases。如果 normalizer_fn提供biases_initializer,biases_regularizer则忽略并且biases不创建也不添加。没有规范化器功能,默认设置为“无”
normalizer_params:规范化函数参数。
weights_initializer:权重的初始化程序。
weights_regularizer:可选的权重正则化器。
biases_initializer:偏见的初始化程序。如果没有跳过偏见。
biases_regularizer:偏见的可选正则化器。
reuse:是否应重用图层及其变量。必须给出能够重用层范围的能力。
variables_collections:所有变量的集合的可选列表或包含每个变量的不同集合列表的字典。
outputs_collections:用于添加输出的集合。
trainable:如果True还将变量添加到图表集合中 GraphKeys.TRAINABLE_VARIABLES(请参阅tf.Variable)。
scope:variable_scope的可选范围。

weighted_sum_from_feature_columns看到的其他同学实现的线性函数,直接从input_features_columns和features中进行计算。并通过tf.contrib.layers.apply_regularization进行正则化。

 linear_logits, collections_linear_weights, linear_bias = \layers.weighted_sum_from_feature_columns(columns_to_tensors=features,feature_columns=feature_columns,num_outputs=1,weight_collections=None,scope=None)  # wide_scopelinear_logit = linear_logits + linear_biasweights_list = list(map(lambda x: x[0], collections_linear_weights.values()))tf.contrib.layers.apply_regularization(tf.contrib.layers.l2_regularizer(float(l2_reg_linear)),weights_list=weights_list)

tf.contrib.layers.fully_connected使用参考

以wide&deep的wide部分实现为例,如下所示:

dense_input_list = [tf.contrib.layers.input_from_feature_columns(columns_to_tensors=features, feature_columns=[feat]) for feat in feature_columns]        
dense_input = concat_fun(dense_input_list)
linear_logit = tf.contrib.layers.fully_connected(dense_input, 1, activation_fn=None, weights_initializer=tf.contrib.layers.xavier_initializer(),weights_regularizer=tf.contrib.layers.l2_regularizer(float(l2_reg_linear)),biases_initializer=tf.zeros_initializer(),biases_regularizer=tf.contrib.layers.l2_regularizer(float(l2_reg_linear)),trainable=True)

concat_fun将dense特征拼接起来

def concat_fun(inputs, axis=-1):if len(inputs) == 1:return inputs[0]else:return tf.keras.layers.Concatenate(axis=axis)(inputs)

3、tf.contrib.layers.linear简介与实例

目前tf.contrib.layers.linear已经被替换为tf.contrib.layers.fully_connected函数。

函数输入

tf.contrib.layers.linear(inputs, num_outputs, *, activation_fn=None, normalizer_fn=None,normalizer_params=None, weights_initializer=._initializer,weights_regularizer=None,biases_initializer=,biases_regularizer=None, reuse=None, variables_collections=None,outputs_collections=None, trainable=True, scope=None
)

tf.contrib.layers.linear - TensorFlow 1.15 - W3cubDocs (来源,看上去和fully_connected一致)

import tensorflow as tfx = tf.get_variable('x', shape=[2,3], initializer=tf.constant_initializer(1))
y1 = tf.contrib.layers.fully_connected(x,2,weights_initializer=tf.contrib.layers.xavier_initializer(seed=1))      #默认为rule激活函数,所以输出会是0
y2 = tf.contrib.layers.linear(x,2,weights_initializer=tf.contrib.layers.xavier_initializer(seed=1))
y3 = tf.contrib.layers.fully_connected(x,2,weights_initializer=tf.contrib.layers.xavier_initializer(seed=1), activation_fn=None)  #activation_fn=None等价于线性函数
with tf.Session() as sess:sess.run(tf.global_variables_initializer())print(sess.run(y1))print(sess.run(y2))print(sess.run(y3))

输出

[[-0. -0.][-0. -0.]]
[[-0.8214258  -0.12572539][-0.8214258  -0.12572539]]
[[-0.8214258  -0.12572539][-0.8214258  -0.12572539]]

4、参考文档

tf.contrib.layers.fully_connected和tf.contrib.layers.linear_得克特的博客-CSDN博客   (fully_connected与linear比较)

tf.contrib.layers.xavier_initializer函数用法_麻木的程序猿的博客-CSDN博客

tensorflow/layers.py at r1.8 · tensorflow/tensorflow · GitHub   (tf.contrib.layers的一些具体实现)

Tensorflow API tf.contrib.layers.linear() 用法_LeeTioN的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/148455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自学嵌入式,已经会用stm32做各种小东西了

自学嵌入式,已经会用stm32做各种小东西了 1、stm32 工程中,定义一个变量,记录复位次数,即复位一次变量加一。要求不许用备份寄存器和 flash 保存信息。本题只讨论不断电热启动情况,至于冷启动,不在此讨论。…

【MATLAB源码-第80期】基于蚯蚓优化算法(EOA)的无人机三维路径规划,输出做短路径图和适应度曲线

操作环境: MATLAB 2022a 1、算法描述 蚯蚓优化算法(Earthworm Optimisation Algorithm, EOA)是一种启发式算法,灵感来源于蚯蚓在自然界中的行为模式。蚯蚓优化算法主要模仿了蚯蚓在寻找食物和逃避天敌时的行为策略。以下是蚯蚓…

【论文阅读】基于隐蔽带宽的汽车控制网络鲁棒认证(二)

文章目录 第三章 识别CAN中的隐藏带宽信道3.1 隐蔽带宽vs.隐藏带宽3.1.1 隐蔽通道3.1.2 隐藏带宽通道 3.2 通道属性3.3 CAN隐藏带宽信道3.3.1 CAN帧ID字段3.3.2 CAN帧数据字段3.3.3 帧错误检测领域3.3.4 时间通道3.3.5 混合通道 3.4 构建信道带宽公式3.5通道矩阵3.6 结论 第四章…

视频集中存储/云存储平台EasyCVR级联下级平台的详细步骤

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

Linux CentOS 8(MariaDB概述)

Linux CentOS 8(MariaDB概述) 目录 一、项目描述二、相关知识2.1 数据库的基本介绍2.2 数据库的分类介绍 三、项目分析3.1 安装并启动 MariaDB3.2 登录 MariaDB 数据库3.3 提高 MariaDB 安装安全性 一、项目描述 Jan16 公司为满足部门之间数据共享、减少…

前台页面从数据库中获取下拉框值

后端&#xff1a;查询所有信息 前台&#xff1a;elementUI <el-select v-model"searchData.stationName" clearable> <el-option :label"item.stationName" :value"item.stationName" v-for"item in stationNameList&quo…

GoLong的学习之路,进阶,标准库之并发(context)补充并发三部曲,你真的明白context吗?

其实对于&#xff0c;context来说&#xff0c;如果只是用来做并发处理就有些不太合适。因为对于golang来说&#xff0c;context应用场景不仅在并发有用&#xff0c;并且在网络链接&#xff0c;http处理&#xff0c;gorm中都有体现。但是其实&#xff0c;本质来说。以上这些场景…

【Java 进阶篇】JQuery 事件绑定:`on` 与 `off` 的奇妙舞曲

在前端开发的舞台上&#xff0c;用户与页面的互动是一场精彩的表演。而 JQuery&#xff0c;作为 JavaScript 的一种封装库&#xff0c;为这场表演提供了更为便捷和优雅的事件绑定方式。其中&#xff0c;on 和 off 两位主角&#xff0c;正是这场奇妙舞曲中的核心演员。在这篇博客…

store下的getter.js什么作用

在 Vue.js 应用中&#xff0c;Vuex 是一种用于集中管理应用状态的状态管理工具。Vuex 中的 getters 允许你在获取 state 中的数据时进行一些计算或处理。通常&#xff0c;getters 可以用于从 store 中获取派生的状态&#xff0c;类似于计算属性。 在 Vuex 中&#xff0c;gette…

小米路由器AX1800降级后的SSH登录和关墙等命令

​​​​​​​​​​​​​​​​​​​​​http://192.168.31.1/cgi-bin/luci/;stok429aaa9c7f05ee7d0816a00257b8414a/api/misystem/set_config_iotdev?bssidXiaomi&user_idlongdike&ssid-h%3B%20nvram%20set%20ssh_en%3D1%3B%20nvram%20commit%3B%20sed%20-i%20s%…

云原生是整个信息化行业的未来,一文彻底搞懂云原生

云原生这个词来自英语的Cloud Native的翻译&#xff0c;云原生是已经存多年在术语&#xff0c;真正开始获得关注的是在2015年到2016年。 这归因于这几年逐渐发布的Docker的兴起。 会有越来越多的企业和组织开始关注到它&#xff0c;并把他们的工作负载运行在云端的益处。无论是…

Flask 接口

目录 前言 代码实现 简单接口实现 执行其它程序接口 携带参数访问接口 前言 有时候会想着开个一个接口来访问试试&#xff0c;这里就给出一个基础接口代码示例 代码实现 导入Flask模块&#xff0c;没安装Flask 模块需要进行 安装&#xff1a;pip install flask 使用镜…

Redis数据的持久化

Redis的持久化有两种方式&#xff1a; RDB&#xff08;Redis Database&#xff09;和AOF&#xff08;Append Only File&#xff09; 目录 一、RDB 保存方式 2、rdb在redis.conf文件中的配置 二、AOF 1、保存方式 2、aof方式持久化在redis.conf文件中的配置 三、持久化建…

小迪安全笔记(2)——web应用架构搭建漏洞HTTP数据包代理服务器

Web应用环境架构类 开发语言&#xff1a;php、java、python、ASP、ASPX等程序源码&#xff1a;用的人多了&#xff0c;就成CMS了。中间件容器&#xff1a;IIS、Apache、Nginx、Tomcat、Weblogic、Jboos、glasshfish等数据库类型&#xff1a;Access、Mysql、Mssql、Oracle、Redi…

【迅搜01】安装运行并测试XunSearch

安装运行并测试XunSearch 这回的新系列&#xff0c;我们将学习到的是一个搜索引擎 迅搜 XunSearch 的使用。这个搜索引擎在 PHP 圈可能还是有一点名气的&#xff0c;而且也是一直在更新的&#xff0c;虽说现在 ElasticSearch 已经是实际上的搜索引擎霸主了&#xff0c;而且还有…

Vue3 shallowRef 和 shallowReactive

一、shallowRef 使用shallowRef之前需要进行引入&#xff1a; import { shallowRef } from vue; 使用方法和ref 的使用方法一致&#xff0c;以下是二者的区别&#xff1a; 1. 如果ref 和 shallowRef 都传入的是普通数据类型的数据&#xff0c;那么他们的效果是一样的&#x…

【计算机基础】优雅的PPT就应该这样设计

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

【顺序表的实现】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 1. 数据结构相关概念 1、什么是数据结构 2、为什么需要数据结构&#xff1f; 2、顺序表 1、顺序表的概念及结构 1.1 线性表 2、顺序表分类 3、动态顺序表的实现 总…

6. hdfs的命令操作

简介 本文主要介绍hdfs通过命令行操作文件 操作文件有几种方式&#xff0c;看个人习惯 hdfs dfs hdfs fs hadoop fs个人习惯使用 hadoop fs 可操作任何对象&#xff0c;命令基本上跟linux命令一样 Usage [hadoophadoop01 ~]$ hadoop fs Usage: hadoop fs [generic option…

【广州华锐互动VRAR】VR元宇宙技术在气象卫星知识科普中的应用

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;和元宇宙等技术正逐渐走进我们的生活。这些技术为我们提供了一个全新的互动平台&#xff0c;使我们能够以更加直观和生动的方式了解和学习各种知识。在气象天文领域&#xff0c;VR元宇宙技术的应用也日益显现…