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

固定值张量

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))

在这里插入图片描述

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))

在这里插入图片描述

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))

在这里插入图片描述

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))

在这里插入图片描述

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))

在这里插入图片描述

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))

在这里插入图片描述

随机值张量

一般我们经常使用的随机数函数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))

在这里插入图片描述

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))

在这里插入图片描述

其它特殊的创建张量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))

在这里插入图片描述

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.]}))

在这里插入图片描述

发布了613 篇原创文章 · 获赞 821 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_35456045/article/details/104690014