当前位置: 首页 > 面试题库 >

TensorFlow:生成一个随机常数

郭易安
2023-03-14
问题内容

在我的IPython进口tensorflow as tfnumpy as np创造的TensorFlow
InteractiveSession。当我使用numpy输入运行或初始化一些正态分布时,一切运行正常:

some_test = tf.constant(np.random.normal(loc=0.0, scale=1.0, size=(2, 2)))
session.run(some_test)

返回值:

array([[-0.04152317,  0.19786302],
       [-0.68232622, -0.23439092]])

正如预期的那样。

…但是当我使用Tensorflow正态分布函数时:

some_test = tf.constant(tf.random_normal([2, 2], mean=0.0, stddev=1.0, dtype=tf.float32))
session.run(some_test)

…它引发类型错误,说:

(...)
TypeError: List of Tensors when single Tensor expected

我在这里想念什么?

输出:

sess.run(tf.random_normal([2, 2], mean=0.0, stddev=1.0, dtype=tf.float32))

单独返回的结果完全相同,即np.random.normal生成->形状矩阵,(2, 2)其值取自正态分布。


问题答案:

tf.constant()运算需要花费numpy的阵列(或其它隐式转换为一个numpy的阵列),并返回一个tf.Tensor其值是相同的数组。它并
没有 接受tf.Tensor作为其参数。

另一方面,tf.random_normal()optf.Tensor每次运行时都会根据给定的分布返回其值是随机生成的。由于它返回a
tf.Tensor,因此不能用作的参数tf.constant()。这说明了TypeError(与的使用无关tf.InteractiveSession,因为它在构建图形时发生)。

我假设您希望您的图包括一个张量,该张量是(i)首次使用时随机生成的,而(ii)之后是常量。有两种方法可以做到这一点:

  1. 使用NumPy生成随机值,然后将其放入tf.constant(),就像您在问题中所做的那样:

    some_test = tf.constant(
    np.random.normal(loc=0.0, scale=1.0, size=(2, 2)).astype(np.float32))
    
  2. (可能更快,因为它可以使用GPU生成随机数)使用TensorFlow生成随机值并将其放在tf.Variable

    some_test = tf.Variable(
    tf.random_normal([2, 2], mean=0.0, stddev=1.0, dtype=tf.float32)
    

    sess.run(some_test.initializer) # Must run this before using some_test



 类似资料:
  • 本文向大家介绍如何生成一个随机数?相关面试题,主要包含被问及如何生成一个随机数?时的应答技巧和注意事项,需要的朋友参考一下  

  • 本文向大家介绍js随机生成一个验证码,包括了js随机生成一个验证码的使用技巧和注意事项,需要的朋友参考一下 之前接触过的验证码都是图片,今天碰到了一个用js生成随机验证码的demo,拿来敲一敲和大家分享。 效果: html代码: 给div设置了一个click点击事件,js代码如下: 定义一个变量,令它的值为26个字母和0-9十个数字。 Math.random()是令系统随机选取大于等于 0.0 且

  • random 生成随机数包 文档:https://www.npmjs.com/package/random 安装:npm install --save random 封装代码: app / extend / context.js // 导入 jwt const jwt = require('jsonwebtoken') // 导入随机数包 const random = require('rando

  • 问题 你需要生成在一定范围内的随机数。 解决方案 使用 JavaScript 的 Math.random() 来获得浮点数,满足 0<=X<1.0 。使用乘法和 Math.floor 得到在一定范围内的数字。 probability = Math.random() 0.0 <= probability < 1.0 # => true # 注意百分位数不会达到 100。从 0 到 100 的范围实

  • 问题内容: 我们如何在Java中生成非常大的随机数?我说的是10000位数吗?我知道我们必须使用BigInteger,但是我们该怎么做呢?做这样的事情最有效的方法是什么?请提供一个小例子。谢谢。 问题答案: 嗯,一种方法是转到Random.org并下载二进制随机文件之一。这些文件是由大气噪声生成的,因此非常随机。我在国际象棋引擎中将其用于Zobrist键。 或者你可以去 这会给你你想要的。在此示例

  • 我在想,是否有办法生成一组随机数,其和总是一个常数。例如,20可以被划分为5个数字(1,2,3,4,10)。我不在乎这5个数字中的每一个是什么,只要它们的和等于20。有任何方法可以通过编程实现吗?

  • 我正在从Python速成班上攻克太空入侵者游戏。我正在使用Python 3.5和Pygame 1.9。2a0,groupcollide() 在原作中,当子弹与宇宙飞船碰撞时,两个精灵都会从屏幕上移除。 在我的版本中,我希望删除对我来说更随机,以便不是所有的点击都成功。我使用随机模块完成了这项工作,如果随机数低于某个阈值(n),则使碰撞成功。我已经在下面的代码中使用了这个函数,但是它没有按照我想要的

  • 问题内容: 我对Swift和编程逻辑很陌生,所以请耐心等待 如何在Swift中生成0到9之间的随机数而不重复最后生成的数字?因为相同的数字不会连续出现两次。 问题答案: 将先前生成的数字存储在变量中,然后将生成的数字与先前的数字进行比较。如果它们匹配,则生成一个新的随机数。重复生成新数字,直到它们不匹配为止。