tensorflow笔记

深度学习中,偏置(bias)在什么情况可以不要? 1、深度学习偏置的作用? x1w1 + x2w2 +…+xnwn > T(T为一个阈值),而T越大,想激活这个感知器的难度越大,人工选择一个阈值并不是一个好的方法,因为样本那么多,我不可能手动选择一个阈值,使得模型整体表现最佳,那么我们可以使得T变成可学习的,这样一来,T会自动学习到一个数,使得模型的整体表现最佳。当把T移动到左边,它就成了偏置,x1w1 + x2w2 +…+xnwn - T> 0 ----->x*w +b > 0,总之,偏置的大小控制着激活这个感知器的难易程度 阅读详情
  • tf.name_scope()

在某个tf.name_scope()指定的区域中定义的所有对象及各种操作,他们的“name”属性上会增加该命名区的区域名,用以区别对象属于哪个区域

ref:tensorflow中的“tf.name_scope()”有什么用?

  • tf.placeholder
tf.placeholder(dtype, shape=None, name=None)

此函数用于定义过程,在执行的时候再赋具体的值。

赋值一般用sess.run(feed_dict = {x:xs, y_:ys}),其中x,y_是用placeholder创建出来的。

为什么要使用tf.placeholder?因为每一个tensor值在graph上都是一个op,当我们将train数据分成一个个minibatch然后传入网络进行训练时,每一个minibatch都将是一个op,这样的话,一副graph上的op未免太多,也会产生巨大的开销;于是就有tf.placeholder,我们每次可以将 一个minibatch传入到x = tf.placeholder(tf.float32,[None,32])上,下一次传入的x都替换掉上一次传入的x,这样就对于所有传入的minibatch x就只会产生一个op,不会产生其他多余的op,进而减少了graph的开销。

  • tf.get_variable()

获取一个已经存在的变量或者创建一个新的变量.

tf.get_variable(name,  shape, initializer): name就是变量的名称,shape是变量的维度,initializer是变量初始化的方式

,初始化的方式有以下几种:

tf.constant_initializer:常量初始化函数

tf.random_normal_initializer:正态分布

tf.truncated_normal_initializer:截取的正态分布

tf.random_uniform_initializer:均匀分布

tf.zeros_initializer:全部是0

tf.ones_initializer:全是1

tf.uniform_unit_scaling_initializer:满足均匀分布,但不影响输出数量级的随机值

import tensorflow as tf;  
import numpy as np;  
import matplotlib.pyplot as plt;  
  
a1 = tf.get_variable(name='a1', shape=[2,3], initializer=tf.random_normal_initializer(mean=0, stddev=1))
a2 = tf.get_variable(name='a2', shape=[1], initializer=tf.constant_initializer(1))
a3 = tf.get_variable(name='a3', shape=[2,3], initializer=tf.ones_initializer())
 
with tf.Session() as sess:
	sess.run(tf.initialize_all_variables())
	print sess.run(a1)
	print sess.run(a2)
	print sess.run(a3)
  • tf.summary.histogram()

在训练神经网络时,当需要查看一个张量在训练过程中值的分布情况时,可通过tf.summary.histogram()将其分布情况以直方图的形式在TensorBoard直方图仪表板上显示.

ref:tf.summary.histogram与直方图

  • tf.nn.embedding_lookup

选取一个张量里面索引对应的元素。tf.nn.embedding_lookup(params, ids):params可以是张量也可以是数组等,id就是对应的索引。

p=tf.Variable(tf.random_normal([10,1]))    #生成10*1的张量
b = tf.nn.embedding_lookup(p, [1, 3])      #查找张量中的序号为1和3的
 
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(b))
    print(sess.run(p))
    print(p)
    print(type(p))


输出:

[[0.15791859]
 [0.6468804 ]]
[[-0.2737084 ]
 [ 0.15791859]
 [-0.01315552]
 [ 0.6468804 ]
 [-1.4090979 ]
 [ 2.1583703 ]
 [ 1.4137447 ]
 [ 0.20688428]
 [-0.32815856]
 [-1.0601649 ]]
<tf.Variable 'Variable:0' shape=(10, 1) dtype=float32_ref>
<class 'tensorflow.python.ops.variables.Variable'>
  • tf.reduce_mean

求平均值

import tensorflow as tf
 
x = [[1,2,3],
      [1,2,3]]
 
xx = tf.cast(x,tf.float32)
 
mean_all = tf.reduce_mean(xx, keep_dims=False)
mean_0 = tf.reduce_mean(xx, axis=0, keep_dims=False)
mean_1 = tf.reduce_mean(xx, axis=1, keep_dims=False)
 
 
with tf.Session() as sess:
    m_a,m_0,m_1 = sess.run([mean_all, mean_0, mean_1])
 
print m_a    # output: 2.0
print m_0    # output: [ 1.  2.  3.]
print m_1    #output:  [ 2.  2.]
  • tf.cast()

作用是执行 tensorflow 中张量数据类型转换,比如读入的图片如果是int8类型的,一般在要在训练前把图像的数据格式转换为float32。

import tensorflow as tf
 
t1 = tf.Variable([1,2,3,4,5])
t2 = tf.cast(t1,dtype=tf.float32)
 
print 't1: {}'.format(t1)
print 't2: {}'.format(t2)
 
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    sess.run(t2)
    print t2.eval()
    # print(sess.run(t2))

t1: <tf.Variable 'Variable:0' shape=(5,) dtype=int32_ref>
t2: Tensor("Cast:0", shape=(5,), dtype=float32)
[ 1.  2.  3.  4.  5.]
  • tf.tile

tile()函数是用来对张量(Tensor)进行扩展的,其特点是对当前张量内的数据进行一定规则的复制。最终的输出张量维度不变。input是待扩展的张量,multiples是扩展方法。
假如input是一个3维的张量。那么mutiples就必须是一个1x3的1维张量。这个张量的三个值依次表示input的第1,第2,第3维数据扩展几倍。
具体举一个例子:

tf.tile(
    input,
    multiples,
    name=None
)

import tensorflow as tf

a = tf.constant([[1, 2], [3, 4], [5, 6]], dtype=tf.float32)
a1 = tf.tile(a, [2, 3])
with tf.Session() as sess:
    print(sess.run(a))
    print(sess.run(tf.shape(a)))
    print(sess.run(a1))
    print(sess.run(tf.shape(a1)))
=======
[[1. 2.]
 [3. 4.]
 [5. 6.]]
[3 2]
[[1. 2. 1. 2. 1. 2.]
 [3. 4. 3. 4. 3. 4.]
 [5. 6. 5. 6. 5. 6.]
 [1. 2. 1. 2. 1. 2.]
 [3. 4. 3. 4. 3. 4.]
 [5. 6. 5. 6. 5. 6.]]
[6 6]
  • tf.AUTO_REUSE

通过get_variable("v")函数获取变量时,如果tf.variable_scope的reuse参数是True, 如果v是已经被创建过了就直接返回,但是如果没有创建会报错。如果设置成False,变量v如果没有被创建过就直接创建,如果创建过就报错。AUTO_REUSE的好处就是实现:如果创建过就返回,没有创建过就创建一个新的变量返回.

  • tf.layers.dense

tf.layers.dense(

    inputs,

    units,

    activation=None,

    use_bias=True,

    kernel_initializer=None,  ##卷积核的初始化器

    bias_initializer=tf.zeros_initializer(),  ##偏置项的初始化器,默认初始化为0

    kernel_regularizer=None,    ##卷积核的正则化,可选

    bias_regularizer=None,    ##偏置项的正则化,可选

    activity_regularizer=None,   ##输出的正则化函数

    kernel_constraint=None,   

    bias_constraint=None,

    trainable=True,

    name=None,  ##层的名字

    reuse=None  ##是否重复使用参数

)

dense1 = tf.layers.dense(inputs=pool3, units=1024, activation=tf.nn.relu)

dense2= tf.layers.dense(inputs=dense1, units=512, activation=tf.nn.relu)

logits= tf.layers.dense(inputs=dense2, units=10, activation=None)

部分参数解释:

inputs:输入该网络层的数据

units:输出的维度大小,改变inputs的最后一维

activation:激活函数,即神经网络的非线性变化

use_bias:使用bias为True(默认使用),不用bias改成False即可,是否使用偏置项

trainable=True:表明该层的参数是否参与训练。如果为真则变量加入到图集合中

tf.where()

1、tf.where(tensor)。tensor 为一个bool 型张量,where函数将返回其中为true的元素的索引。如上图官方注释

2、tf.where(tensor,a,b)。a,b为和tensor相同维度的tensor,将tensor中的true位置元素替换为a中对应位置元素,false的替换为b中对应位置元素。

用法二
import tensorflow as tf
import numpy as np
sess=tf.Session()

a=np.array([[1,0,0],[0,1,1]])
a1=np.array([[3,2,3],[4,5,6]])

print(sess.run(tf.equal(a,1)))
print(sess.run(tf.where(tf.equal(a,1),a1,1-a1)))

>>[[true,false,false],[false,true,true]]

>>[[3,-1,-2],[-3,5,6]]

用法一
tf.where(input, name=None)`
Returns locations of true values in a boolean tensor.

This operation returns the coordinates of true elements in input. The coordinates are returned in a 2-D tensor where the first dimension (rows) represents the number of true elements, and the second dimension (columns) represents the coordinates of the true elements. Keep in mind, the shape of the output tensor can vary depending on how many true values there are in input. Indices are output in row-major order.

For example:
# 'input' tensor is [[True, False]
#                    [True, False]]
# 'input' has two true values, so output has two coordinates.
# 'input' has rank of 2, so coordinates have two indices.
where(input) ==> [[0, 0],
                  [1, 0]]

# `input` tensor is [[[True, False]
#                     [True, False]]
#                    [[False, True]
#                     [False, True]]
#                    [[False, False]
#                     [False, True]]]
# 'input' has 5 true values, so output has 5 coordinates.
# 'input' has rank of 3, so coordinates have three indices.
where(input) ==> [[0, 0, 0],
                  [0, 1, 0],
                  [1, 0, 1],
                  [1, 1, 1],
                  [2, 1, 1]]

 

【TensorFlow】学习笔记-TensorFlow 是什么? (张量)是多维数组的抽象表示,可以存储数据,是TensorFlow的基本计算单位,支持标量(0D张量),向量(1D张量),矩阵(2D张量),高维矩阵(3D张量)。:用于机器学习环境的工具库,涵盖数据验证,数据转换,模型部署等方面,可以帮助用户完成数据预处理到模型部署的整个流程。:基础核心功能,包括了计算图的定义和优化,Tensor数据类型的处理,如加,减,矩阵乘法,自动求导等。:TensorFlow提供一系列对张量操作的函数,例如加法,矩阵乘法,卷积等。:张量维度的大小,(3,2)表示3行2列。 阅读详情

相关推荐

〖TensorFlow2.0笔记23〗TensorFlow2.0学习笔记总结!

Tensorflow2.0全套课程学习笔记!

AI新视界 1万+

PyTorch 深度学习实践 第10讲

第9讲 卷积神经网络(基础篇)源代码 B站 刘二大人,传送门PyTorch深度学习实践——卷积神经网络(基础篇) 视频中截图: 说明 1、每一个卷积核它的通道数量要求和输入通道是一样的。这种卷积核的总数有多少个和你输出通道的数量是一样的。 2、卷积(convolution)后,C(Channels)变,W(width)和H(Height)可变可不变。subsampling(或pooling)后,C不变,W和H变。 3、卷积层:保留图像的空间信息。 代...

bit452的专栏 4万+

TensorFlow学习笔记01:TensorFlow入门

文章目录 一、TensorFlow基本概念 1、TensorFlow的Hello World 2、TensorFlow的概念 3、计算图(数据流图)的概念 4、张量的概念 5、张量的属性 (1)名字(name) (2)形状(shape) (3)类型(type) 5、张量的形状 6、获取张量的元素 7、张量的类型 (1)TensorFlow支持14种不同类型 (2)默认类...

howard2005的专栏 2325

【pytorch】Conv2d()里面的参数bias什么时候加,什么时候不加?

Conv2d()里面的参数bias什么时候加,什么时候不加?

qq_38230414的博客 6887

AHB不对称半桥反激电路设计(一)变换器拓扑工作原理详解

本文详细分析了AHB(不对称半桥)反激变换器拓扑的工作原理及关键优势。该拓扑通过谐振腔结构实现原边功率管的零电压开通(ZVS)和副边整流管的零电流关断(ZCS),显著提升效率至95%以上。文章阐述了6个工作阶段的时序特征,包括谐振电感电流和电容电压的数学模型推导。AHB拓扑具有漏感能量回收、宽电压输出(适配PD快充等场景)和协同储能等优势,相比传统方案可缩小变压器体积30%,成为100-300W隔离电源的理想选择。

【Simon】的博客 7120

SAP中贸易伙伴的应用原理简析

公司也称为贸易伙伴,是出具合并报表的组织单位,可以为客户和供应商分配公司(贸易伙伴),用于识别集团内关闻公司间的业务往来,在编制合并报表时进行往来账务的计算处理。 如下图某贸易伙伴公司(关联方名称G0059)在我方公司的SAP系统中有多重身份(即是供应商,又是客户)。那么在我方公司SAP系统中建立起公司(贸易伙伴),并关联到供应商和客户主数据中。之后,就可以通过G0059这个贸易伙伴名称来识别与该贸易伙伴间的往来业务。 相应的配置设定如下: 定义公司(贸易伙伴或关联方) 会计凭证中会

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 9814

pytorch入门_循环神经网络

pytorch 中使用 nn.RNN 类来搭建基于序列的循环神经网络,它的构造函数有以下几个参数: input_size:输入数据X的特征值的数目。 hidden_size:隐藏层的神经元数量,也就是隐藏层的特征数量。 num_layers:循环神经网络的层数,默认值是 1。 bias:默认为 True,如果为 false 则表示神经元不使用 bias 偏移参数。 batch_first:如果设...

baihehaitangyijiu的博客 549

【CubeMX】STM32G474 HRTIM 死区时间与互补PWM实战解析

本文深入解析STM32G474的HRTIM高分辨率定时器在互补PWM生成与死区时间配置中的应用。通过CubeMX工具详细演示时钟配置、单路PWM基础、互补输出与死区时间设置,并结合逆变器等电力电子实战案例,帮助开发者避免直通风险,优化系统性能。

efc12345678的博客 744

【人工智能基础】【为什么设置bias=false】

如果在 BatchNorm 前后的层中设置 bias=True,偏置项将成为无用的可训练参数,浪费计算资源。因此,建议在这些位置的层中使用 bias=False。

qq_51691526的博客 748

【python爬虫实战】Python 抓取京东商品信息与评论,做竞品分析

本项目通过爬取京东平台商品数据,实现了完整的电商竞品分析流程。文章首先介绍了项目目标和技术栈,包括Python、Requests、BeautifulSoup等工具。然后详细解析了京东页面结构,包括商品列表页、详情页和评论页的特点。核心部分展示了商品列表爬取、评论数据获取以及竞品分析三个关键步骤的代码实现,每部分都包含运行结果和原理讲解。通过情感分析和关键词提取,项目能够对比不同产品的用户评价差异。最后,文章还讨论了合规性考量、优化建议和常见问题解答。该方案不仅适用于市场调研,也为企业制定营销策略提供了数据支

2503_91057718的博客 1万+

PCIe扫盲(三)

需要特别注意的是,PCIe的Spec中明确规定只有Root有权限发起配置请求(Originate Configuration Requests),也就是说PCIe系统里面的其他设备是不允许去配置其他设备的配置空间的,即peer-to-peer的配置请求是不允许的。当配置请求进行BDF路由的时候,正是依靠这些信息来确定要找的设备的。前面的文章还介绍过,Root和Switch的每一个端口中都包含一个P2P桥,并且知道桥的配置空间头(Configuration Space Header)是Type1型的。

Liuqz2009的专栏 2398

TensorFlow笔记(草稿)

20190118

w6a19af1c- -11ef-83d7-7b3723a85fa1的部落格 293

simulink中MIL测试简单理解

输入信号设置如下:选中New Test Case1 ---INPUT。5、新建(选择New,Test from Spreadsheet)6、可以新建也可以导入(Use existing test)Source:Output为自己预测结果。3、右键子系统(Create)打开生成表格,可以自己调试。4、创建测试用例表格。保存路径为模型路径。保存路径在模型路径。8、运行测试设h置。

lingdianhuat的博客 1783

北京大学曹健——Tensorflow笔记 01

   

我思故我在! 2027

MOS管驱动电路设计全攻略

MOS管驱动电路设计全攻略

让你爱上电路设计 3634

08 RK3568 MAC TO MAC直连 RTL8367S mdio

本文:采用rk3568 gamc0 通过rgmii直连 交换芯片的mac口 通信方法为mdio。

qq_39451352的博客 3473

【Tensorflow】北京大学tensorflow学习笔记

AI_TensorflowNotebook 北京大学公开课学习笔记 课程链接:https://www.icourse163.org/course/PKU-1002536002 课程github主页:链接 推荐课程中的助教笔记,内容更加全面。笔记链接 提取码: jhk5 本文相关代码:github个人主页 1 AI概述与环境搭建 1.1 人工智能概述 人工智能的概念、兴衰史、学科带头人、常见消费产...

dzg_chat的博客 2634

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【一些笔记】TensorFlow笔记

TensorFlow笔记 [by_041] TensorFlow是基于Tensor(张量)计算的一种深度学习库 参考B站视频 一个博主,他最开始的博文全是关于TF的(至少22篇) Tensorflow 1 的官方文档 用py2的 文章目录TensorFlow笔记[by_041]@[toc]安装语法基础使用基础数据处理基础基于`pandas`进行读取数据基于`matplotlib`进行数据绘图Tensorflow 2.0 tf.keras一次完整的线性回归分析简化后跟[一个叫itluojie博主](

Teloy_041的博客 1857

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Tensorflow教程笔记】TensorFlow Lite

Tensorflow教程笔记 基础 TensorFlow 基础 TensorFlow 模型建立与训练 基础示例:多层感知机(MLP) 卷积神经网络(CNN) 循环神经网络(RNN) 深度强化学习(DRL) Keras Pipeline 自定义层、损失函数和评估指标 常用模块 tf.train.Checkpoint :变量的保存与恢复 常用模块 TensorBoard:训练过程可视化 常用模块 tf.data :数据集的构建与预处理 常用模块 TFRecord :TensorFlow 数据集存储格式 常用

nanke_4869的博客 6835

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Tensorflow | Tensorflow官方教程学习笔记之介绍

题外话: 躲是躲不掉的,就要开始使用最受欢迎的深度学习框架了。如之前Pytorch入门之框架介绍,Tensorflow的前身为Theano,将所有运算转化为图结构,但有着代码可读性较难,上手较难的门槛。Anyway,开始学习吧! 作为明星的深度学习框架,线上已有众多入门博客。为避免踩坑,我直接看了Tensorflow官方中文社区文档。本文记录的是官方文档《介绍》篇的学习笔记。 ...

iLOVEJohnny的博客 311

tensorflow笔记 :常用函数说明

转载 流程,概念和简单代码注释 tensorflow笔记 :常用函数说明

程序员晓老九 156

小米笔记本安装tensorflow-gpu步骤

** 小米笔记本安装tensorflow-gpu步骤 ** 需要准备相应的软件工具 本人安装的版本如下图: 首先,是下载python3 ,版本按自己的喜好下载。https://www.python.org/ python下载地址,自己选择合适的版本和对应的系统,安装的时候别忘记添加路径到path里面。 如果不知道该下载什么版本的cuda,请打开自己的显卡。 然后点击帮助 -> 系统信息 ...

qq_42540496的博客 1425

【tensorflow笔记视频课】的笔记大集合

这篇文章记录我所看的视频课【tensorflow笔记】的代码,这些代码并不是课上讲的代码,而是我自己听了课之后根据自己的想法敲写的,所以不是100%还原老师的代码。 1.前向传播 一个很简单很简单的前向传播例子 import numpy as np import tensorflow...

chenyi9981的博客 245

TensorFlow.JS读书笔记01

挖个坑到时候再来填。

qq_40979183的博客 1014

CS224n笔记7 TensorFlow入门

为什么80%的码农都做不了架构师?>>> ...

weixin_33935505的博客 186

TensorFlow2自学笔记

TensorFlow作为深度学习的两大库之一,是学习人工智能的必修库 本文作为学习笔记,系统梳理了人工智能学习中的各个基本概念,并详细介绍了用TensorFlow搭建神经网络的步骤。 最后介绍了用TensorFlow实现 CNN RNN的方法。

qq_41597915的博客 1290
上一篇: ZGMF-X20A
梓笠
博客等级 码龄11年 10粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值