zoukankan      html  css  js  c++  java
  • tensorflow中常量(constant)、变量(Variable)、占位符(placeholder)和张量类型转换reshape()


    常量 constant


    tf.constant()函数定义:


    def constant(value, dtype=None, shape=None, name="Const", verify_shape=False)

    • value: 符合tf中定义的数据类型的常数值或者常数列表;
    • dtype:数据类型,可选;
    • shape:常量的形状,可选;
    • name:常量的名字,可选;
    • verify_shape:常量的形状是否可以被更改,默认不可更改;

    constant()函数提供在tensorflow中定义常量(不可更改的张量)的方法。

    例如:


    tensor_constant1 = tf.constant([1,2,3,4])


    得到常数张量[1,2,3,4]。

    除了直接赋值以外,tf还提供使用tf.ones()、tf.zeros()等初始化张量的方法。



    变量 Variable


    tensorflow中的变量是通过Variable类来实现的,类初始化函数为tf.Variable():


    def __init__(self,
                   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)


    tensorflow中的可以改变的量包括训练过程中的输入数据,输出数据以及控制从输入到输出的学习机制(具体体现为网络参数),输入输出数据在tf中是用placeholder占位符定义的,tf的学习机制使用变量来表示

    TensorFlow中的变量特指深度学习机制中,控制输入到输出映射的可以变化的数据,这些变化数据随着训练迭代的进行,不断地改变数值,不断优化,使输出的结果越来越接近于正确的结果

    例如初始化一个含有100个值为0的一维常量的变量:


    w_c1 = Variable(tf.zeros([100]))




    占位变量 placeholder


    tf.placeholder()函数定义:


    def placeholder(dtype, shape=None, name=None)

    • dtype:表示tensorflow中的数据类型,如常用的tf.float32,tf.float64等数值类型;
    • shape:表示数据类型,默认的None是一个一维的数值,shape=[None,5],表示行不定,列是5;
    • name:张量名称;


    placeholder()又叫占位符,用于声明一个张量的数据格式,告诉系统这里会有一个这种格式的张量,但是还没有给定具体数值,具体的数值要在正式运行的时候给到。占位变量是一种TensorFlow用来解决读取大量训练数据问题的机制,它允许你现在不用给它赋值,随着训练的开始,再把训练数据传送给训练网络学习。

    例如:


    X = tf.placeholder(tf.float32, shape = [None, 100 * 100])



    以上声明一个张量并赋值给X,数据类型是tf.float32,大小是None*100*100,None表示数量不定,tensorflow会根据运行时候具体情况调整。




    张量转换 reshape


    tf.reshape()定义:


    tf.reshape(tensor, shape, name=None)


    • tensor:张量
    • shape:目标张量的形式
    • name:名称,可选


    reshape()的作用是将原始张量转换为参数中shape指定的形式。 
    其中shape为一个列表形式,特殊的一点是列表中可以存在-1。-1代表的含义是不用显式指定这一维的大小,函数会自动计算,但列表中只能存在一个-1。

    例如:

    lable = [1,2,3,4,5,6,7,8]

    reshape1 = tf.reshape(lable,shape = [2,-1])

    reshape2 = tf.reshape(lable,shape = [2,4])

    reshape1和 reshape2等价。
  • 相关阅读:
    linux下一个网卡配置多个ip(转)
    实验室生活:第一个月
    关闭或开启Linux上的iptables防火墙,SSH端口(转)
    TcpTrace追踪远程服务器的soap信息
    我的mysql学习笔记(1)mysql的安装
    大型网站架构演变和知识体系[转载]
    ms sql一些有用的语句
    我的mysql学习笔记(2)mysql基本的命令
    SQL Server 2008 R2数据库镜像部署[转]
    C++ 自定义动态数组模板
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9411770.html
Copyright © 2011-2022 走看看