tensorflow CNN常用函数汇总

tf.placeholder

tf.placeholder(
	dtype,
	shape=None,
	name=None
)
x=tf.placeholder(tf.float32,[28,28],'x')

注意placeholder中维度设置为None的时候是维度不定的意思,和-1的含义相同,但是placeholder中不能使用-1

tf.nn.softmax

tf.nn.softmax(
	logits,
	axis=None,
	name=None,
	dim=None
)

整个函数执行如下操作:

softmax = tf.exp(logits) / tf.reduce_sum(tf.exp(logits), axis)

参数说明:
logits: 一个非空tensor。必需是如下的数据类型:half, float32, float64
axis: 是softmax函数将在哪一个方向上进行,默认是-1,也就是在最后一个维度上进行(因为一般使用sotfmax函数分类都是对最后输出的类别信息求概率,所以最后的数据维度为[batch大小,类别数量],默认-1就是对类别维度做softmax)

returns:
返回一个tensor,这个tensor和logits有相同的形状和数据类型

tf.get_variable

tf.get_variable(
    name,
    shape=None,
    dtype=None,
    initializer=None,
    regularizer=None,
    trainable=None,
    collections=None,
    caching_device=None,
    partitioner=None,
    validate_shape=True,
    use_resource=None,
    custom_getter=None,
    constraint=None,
    synchronization=tf.VariableSynchronization.AUTO,
    aggregation=tf.VariableAggregation.NONE
)

这个函数的作用是创建一个新的变量或者获取已经创建的变量的值。
函数执行时将name_scope的名字作为传入变量名字的前缀,执行一步查询,看指定的name scope中是否有该变量存在,否则创建一个新的变量。

参数解释:
name:已经存在或者将要创建的vairable名字
initializer:为创建的变量定义初始化过程。可以是一个initializer object或一个tensor。如果是tensor,tensor的形状必须已知(或者valiate_shape是False。当initializer是None的时候,默认的variable scope的initializer将会被使用,如果variable scope的initializer的variable scope也是None,那么将会使用glorot_uniform_initializer。当initializer是tensor的时候,variable将会被初始化为tensor的形状和大小
regularizer
trainable
collections
caching_device
partitioner
validate_shape:当False的时候,允许variable被一个未知shape的tensor初始化。
use_resource
custom_getter

tf.nn.softmax_cross_entropy_with_logits

tf.nn.softmax_cross_entropy_with_logits(
    _sentinel=None,
    labels=None,
    logits=None,
    dim=-1,
    name=None,
    axis=None
)

_sentinel:
labels: 传入的是一个概率分布,这个概率分布的shape一般是[batch_size, num_classes], num_class维度代表的就是概率分布,但是通常使用的都是one hot编码
logits: 是神经网络最后一层的输出,这个输出没有经过softmax计算,本函数会自动进行sotfmax的计算。
dim: class的维度,默认值-1代表最后一维
name
axis

return:
返回一个tensor,包含交叉熵,这里返回的是交叉熵是对class num维度求和过的,所以总的维度一般是[batch_size,1]

tf. train.GradientDescentOptimizer

注意这是一个类,而不是一个函数
init

__init__(
    learning_rate,
    use_locking=False,
    name='GradientDescent'
)

use_locking:如果设置为True,不更新权重值

method:

minimize

minimize(
    loss,
    global_step=None,
    var_list=None,
    gate_gradients=GATE_OP,
    aggregation_method=None,
    colocate_gradients_with_ops=False,
    name=None,
    grad_loss=None
)

**loss:**一个tensor,是我们要最小化的变量,也就是LOSS

tf.arg_max

返回一个tensor中某个维度的最大值的index

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

input: 一个tensor
dimension: 描述在哪一个维度上对输入tensor进行求最大下标的操作,在和one hot编码进行比较的时候,通常设置这个维度为1,这样是在类别的维度上求最大值,也就是求出NN判断的类别。

return: 一个tensor,类别由output type指定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值