TensorFlow常用函数

tf.placeholder

placeholder,占位符,在tensorflow中类似于函数参数,运行时必须传入值。

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

  • dtype:数据类型。常用的是tf.int32,tf.float32,tf.float64,tf.string等数据类型
  • shape:数据形状。默认是None,也就是一维值。也可以表示多维比如要表示2行3列则应设为[2, 3],形如[None, 3]表示列是3,行不定。
  • name:名称。
    例:

tf.placeholder(tf.float32, shape=(None, 1024))
1024是指的数据的尺寸,None指的batch size的大小,所以可以是任何数。

tf.device

tf.device(device_name_or_function)

TensorFlow 支持 CPU 和 GPU 这两种设备,它们均用 strings 表示,例如:

  • "/cpu:0":机器的 CPU
  • "/device:GPU:0":机器的 GPU(如果有一个)
  • "/device:GPU:1":机器的第二个 GPU(以此类推)

tf.Variable与tf.get_variable()

创建变量

tf.Variable(initial_value=None, trainable=True, collections=None, validate_shape=True, caching_device=None, name=None, variable_def=None, dtype=None, expected_shape=None, import_scope=None)

tf.get_variable(name, shape=None, dtype=None, initializer=None, regularizer=None, trainable=True, collections=None, caching_device=None, partitioner=None, validate_shape=True, custom_getter=None)

initializer:创建变量的初始化器。如果初始化器为 None(默认),则将使用在变量范围内传递的默认初始化器(如果另一个也是 None,那么一个 glorot_uniform_initializer (也称之为Xavier uniform initializer)将被使用)。glorot_uniform_initializer函数从均匀分布初始化值.

两者区别:使用tf.Variable时,如果检测到命名冲突,系统会自己处理。使用tf.get_variable()时,系统不会处理冲突,而会报错。
基于此,当我们需要共享变量的时候,需要使用tf.get_variable()

tf.variable_scope和tf.name_scope

tf.variable_scope可以让变量有相同的命名,包括tf.get_variable得到的变量,还有tf.Variable的变量
tf.name_scope可以让变量有相同的命名,只是限于tf.Variable的变量

tf.nn.embedding_lookup

tf.nn.embedding_lookup(params, ids, partition_strategy="mod", name=None, validate_indices=True, max_norm=None)

tf.nn.embedding_lookup()就是根据input_ids中的id,寻找embeddings中的第id行。比如input_ids=[1,3,5],则找出embeddings中第1,3,5行,组成一个tensor返回。

tf.layers.conv1d

tf.layers.conv1d(inputs, filters, kernel_size, strides=1, padding='valid', data_format='channels_last', dilation_rate=1, activation=None, use_bias=True, kernel_initializer=None, bias_initializer=init_ops.zeros_initializer(), kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None, trainable=True, name=None, reuse=None)

conv1d:一维卷积层(即时域卷积),所谓的一维卷积可以看作是二维卷积(conv2d)的简化,二维卷积是将一个特征图在width和height两个方向上进行滑窗操作,对应位置进行相乘并求和;而一维卷积则是只在width或者说height方向上进行滑窗并相乘求和。

tf.reduce_max和tf.reduce_mean

tf.reduce_max(input_tensor, axis=None, keepdims=None, name=None, reduction_indices=None, keep_dims=None)

功能:最大池化,求最大值

tf.reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)

功能:平均池化,求平均值

参数1--input_tensor:待求值的tensor。
参数2--reduction_indices:在哪一维上求解。

tf.layers.dense

tf.layers.dense(inputs, units, activation=None, use_bias=True, kernel_initializer=None, bias_initializer=init_ops.zeros_initializer(), kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None, trainable=True, name=None, reuse=None)

功能:添加一层,全连接层

tf.layers.dropout

tf.layers.dropout(inputs, rate=0.1, noise_shape=None, seed=None, training=False)

功能:随机的拿掉网络中的部分神经元,从而减小对W权重的依赖,以达到减小过拟合的效果。
rate: The dropout rate, between 0 and 1. E.g. "rate=0.1" would drop out 10% of input units.

tf.argmax

tf.argmax(input, axis=None, name=None, dimension=None, output_type=dtypes.int64)

axis = 0的时候返回每一列最大值的位置索引
axis = 1的时候返回每一行最大值的位置索引
axis = 2、3、4...,即为多维张量时,同理推断

tf.cast

tf.cast(x, dtype, name=None)

功能:类型转换

tf.layers.conv1d

一维卷积,一般用于处理文本,所以输入一般是一段长文本,就是词的列表

tf.layers.conv1d( inputs, filters, kernel_size, strides=1, padding='valid', data_format='channels_last', dilation_rate=1, activation=None, use_bias=True, kernel_initializer=None, bias_initializer=tf.zeros_initializer(), kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None, trainable=True, name=None, reuse=None )

比较重要的几个参数是inputs, filters, kernel_size

  • inputs : 输入tensor, 维度(None, a, b) 是一个三维的tensor
    • None:一般是填充样本的个数,batch_size
    • a:句子中的词数或者字数
    • b:字或者词的向量维度
  • filters : 过滤器的个数
  • kernel_size : 卷积核的大小,卷积核其实应该是一个二维的,这里只需要指定一维,是因为卷积核的第二维与输入的词向量维度是一致的,因为对于句子而言,卷积的移动方向只能是沿着词的方向,即只能在列维度移动

tf.reduce_max

返回最大值

tf.reduce_max(input_tensor, axis=None, keepdims=None, name=None, reduction_indices=None, akeep_dims=None)

axis:维度,若为None,则返回所有维度的最大值
reduction_indices: The old (deprecated) name for axis.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • 对于TensorFlow中的基本用法,参考了网上很多博客,把自己认为解释的比较好的做一些整理。 tensorflo...
    有你的世界5726阅读 2,395评论 0 1
  • 一篇字数写超了的作文。 燕子姐又要折腾什么不得而知,给我安排任务写作文,主题是“凡朴”,题目不限,字数100-20...
    卡拉的姐姐阅读 1,833评论 0 0
  • 曾国藩老爷子也真是高人啊,为什么就是要在平时积累信用,当真正需要别人帮助的时候,才真的会有人帮你。写不出来,绝对是...
    知名作家charles阅读 207评论 0 0
  • 有没有一种长大后时间变得很快很快的感觉,最漫长的就是小学六年了吧。天天数着离周末还有几天,什么时候才能脱下红领巾,...
    简懿啊阅读 460评论 0 0
  • 老妖1963阅读 105评论 0 1