python - 在张量流中以另一个张量作为种子生成随机序列
问题描述
我有一个用例,我需要在给定输入整数的情况下生成一系列随机整数。在 python 中有很多方法可以做到这一点。我目前使用的一个如下:
import hashlib
def nextRandom(seed, length, maxval):
md5 = hashlib.md5(str(hash(seed)).encode('utf-8'))
for k in range(length):
md5.update(str(k).encode('utf-8'))
yield int(md5.hexdigest(), 16) % maxval
seed = 12345
length = 10
maxval = 1000
for randInt in nextRandom(seed, length, maxval):
print(randInt)
这确保生成的序列在给定seed
值的情况下是固定的。
现在,我需要在 tensorflow 中使用类似的功能,其中seed
作为张量,返回的序列也应该是张量。
我在 tensorflow github 页面中检查了这个问题,但找不到有效的解决方案。
解决方案
这是一种可能的tf.contrib.stateless
模块解决方案:
import tensorflow as tf
seed = tf.random_uniform(shape=[2], dtype=tf.int64, maxval=1000000)
x = tf.contrib.stateless.stateless_random_uniform(shape=(1, 1), dtype=tf.float32, seed=seed)
sess = tf.Session()
print(sess.run(x))
请注意,stateless
模块不支持整数,除非stateless_multinomial
以防万一。
推荐阅读
- azure - Azure 事件中心上的 POST 数据失败
- android - AndroidRuntime 错误 SecurityException: GoogleCertificatesRslt: 未列入白名单
- php - react/axios Auth 和 CORS 问题
- excel - 如何从数字成绩和字母成绩的混合中计算平均成绩,其值是通过查找表确定的
- ios - 在任何屏幕顶部填充 hStack
- android - Android View 未通过数据绑定更新
- python - 功能在另一个具有睡眠的功能中不起作用
- npm - nuxt.js npm run "dev DeprecationWarning: Tapable.plugin is deprecated "
- excel - 在 TextBoxes 属性处出错(一个代码行)
- javascript - 了解 javascript 中 forEach 函数语句中的语法