欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Tensorflow中创建张量的方法合集】zeros,ones,fill,constant,truncated_nomal,random_nomal,Variable,placeholder等

程序员文章站 2022-05-31 18:48:20
...

固定值张量

tf.zeros(shape, dtype=tf.float32, name=None)

创建所有元素设置为零的张量。此操作返回一个dtype具有形状shape和所有元素设置为零的类型的张量。

import tensorflow as tf
a = tf.zeros((3,4),name="demo")
with tf.Session() as sess:
    print(a)
    print(sess.run(a))

【Tensorflow中创建张量的方法合集】zeros,ones,fill,constant,truncated_nomal,random_nomal,Variable,placeholder等

tf.zeros_like(tensor, dtype=None, name=None)

给tensor定单张量(),此操作返回tensor与所有元素设置为零相同的类型和形状的张量。

import tensorflow as tf
a = tf.zeros((3,4),name="demo")
b = tf.zeros_like(a, dtype=float,name="demo2")
with tf.Session() as sess:
    print(a)
    print(sess.run(a))
    print(b)
    print(sess.run(b))

【Tensorflow中创建张量的方法合集】zeros,ones,fill,constant,truncated_nomal,random_nomal,Variable,placeholder等

tf.ones(shape, dtype=tf.float32, name=None)

创建一个所有元素设置为1的张量。此操作返回-个类型的张量,dtype形 状shape和所有元素设置为1.

import tensorflow as tf
a = tf.ones((3,6), dtype=tf.float32, name="demo3")
with tf.Session() as sess:
    print(a)
    print(sess.run(a))

【Tensorflow中创建张量的方法合集】zeros,ones,fill,constant,truncated_nomal,random_nomal,Variable,placeholder等

tf.ones_like(tensor, dtype=None, name=None)

给tensor定单张量(),此操作返回tensor与所有元素设置为1相同的类型和形状的张量。

import tensorflow as tf
a = tf.ones((3,6), dtype=tf.float32, name="demo3")
b = tf.ones_like(a, dtype=float, name="demo4")
with tf.Session() as sess:
    print(a)
    print(sess.run(a))
    print(b)
    print(sess.run(b))

【Tensorflow中创建张量的方法合集】zeros,ones,fill,constant,truncated_nomal,random_nomal,Variable,placeholder等

tf.fill(dims, value, name=None)

创建一个填充了标量值的张量。此操作创建一个张量的形状dims并填充它value.

import tensorflow as tf
a = tf.fill((3,4), 888, name="three")
with tf.Session() as sess:
    print(a)
    print(sess.run(a))

【Tensorflow中创建张量的方法合集】zeros,ones,fill,constant,truncated_nomal,random_nomal,Variable,placeholder等

tf.constant(value, dtype=None, shape=None, name=‘Const’)

创建一个常数张量。

import tensorflow as tf
a = tf.constant(7, dtype=float, shape=None, name='Const')
with tf.Session() as sess:
    print(a)
    print(sess.run(a))

【Tensorflow中创建张量的方法合集】zeros,ones,fill,constant,truncated_nomal,random_nomal,Variable,placeholder等

随机值张量

一般我们经常使用的随机数函数Math.random()产生的是服从均匀分布的随机数,能够模拟等概率出现的情 况,例如扔一个骰子,1到6点的概率应该相等,但现实生活中更多的随机现象是符合正态分布的,例如20 岁成年人的体重分布等。

假如我们在制作一个游戏,要随机设定许许多多NPC的身高,如果还用Math.random(), 生成从140 到220 之间的数字,就会发现每个身高段的人数是一样多的,这是比较无趣的,这样的世界也与我们习惯不同,现 实应该是特别高和特别矮的都很少,处于中间的人数最多,这就要求随机函数符合正态分布。

tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

从截断的正态分布中输出随机值,和tf.random_normal()一样,但是所有数字都不超过两个标准差

import tensorflow as tf
a = tf.truncated_normal((3,4), mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
with tf.Session() as sess:
    print(a)
    print(sess.run(a))

【Tensorflow中创建张量的方法合集】zeros,ones,fill,constant,truncated_nomal,random_nomal,Variable,placeholder等

tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

从正态分布中输出随机值,由随机正态分布的数字组成的矩阵

import tensorflow as tf
a = tf.random_normal((5,2), mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
with tf.Session() as sess:
    print(a)
    print(sess.run(a))

【Tensorflow中创建张量的方法合集】zeros,ones,fill,constant,truncated_nomal,random_nomal,Variable,placeholder等

其它特殊的创建张量op

tf.Variable

tf.Variable(initializer,name),参数initializer是初始化参数,name是可自定义的变量名称,用法如下:

import tensorflow as tf
v1=tf.Variable(tf.random_normal(shape=[4,3],mean=0,stddev=1),name='v1')
v2=tf.Variable(tf.constant(2),name='v2')
v3=tf.Variable(tf.ones([4,3]),name='v3')
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(v1))
    print(sess.run(v2))
    print(sess.run(v3))

【Tensorflow中创建张量的方法合集】zeros,ones,fill,constant,truncated_nomal,random_nomal,Variable,placeholder等

tf.placeholder

tf.placeholder(dtype, shape=None, name=None)
placeholder,占位符,在tensorflow中类似于函数参数,运行时必须传入值。

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

input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)

output = tf.multiply(input1, input2)

with tf.Session() as sess:
    print(sess.run(output, feed_dict={input1: [3.], input2: [4.]}))

【Tensorflow中创建张量的方法合集】zeros,ones,fill,constant,truncated_nomal,random_nomal,Variable,placeholder等