小编Pet*_*ter的帖子

设置张量流舍入模式

我正在使用小数字tensorflow,这有时会导致数值不稳定.

我想提高结果的精确度,或者至少确定我的结果的界限.

下面的代码显示了一个数字错误的具体示例(它输出nan而不是0.0,因为float64不够精确地处理1+eps/2):

import numpy as np
import tensorflow as tf

# setup
eps=np.finfo(np.float64).eps
v=eps/2
x_init=np.array([v,1.0,-1.0],dtype=np.float64)

x=tf.get_variable("x", initializer=tf.constant(x_init))
square=tf.reduce_sum(x)
root=tf.sqrt(square-v)

# run
with tf.Session() as session:
    init = tf.global_variables_initializer()
    session.run(init)

    ret=session.run(root)
    print(ret)
Run Code Online (Sandbox Code Playgroud)

我假设没有办法增加tensorflow中值的精度.但也许有可能设置舍入模式,就像在C++中使用std::fesetround(FE_UPWARD)?然后,我可以强制张量流总是向上舍入,这将确保我采用非负数的平方根.


我尝试了什么:我试图按照这个问题概述如何设置python/numpy的舍入模式.但是,这似乎不起作用,因为以下代码仍然打印nan:

import numpy as np
import tensorflow as tf

import ctypes
FE_TONEAREST = 0x0000 # these constants may be system-specific
FE_DOWNWARD = 0x0400
FE_UPWARD = 0x0800 …
Run Code Online (Sandbox Code Playgroud)

python rounding tensorflow

9
推荐指数
1
解决办法
561
查看次数

PIL图像的简单哈希

背景

我想将PIL图像的信息存储在键值存储中。为此,我对图像进行哈希处理并将哈希值用作键。

我尝试了什么

我一直在使用以下代码来计算哈希值:

def hash(img):
   return hashlib.md5(img.tobytes()).hexdigest()
Run Code Online (Sandbox Code Playgroud)

但这似乎不稳定。我还没有弄清楚为什么,但是对于不同机器上的同一图像,我得到了不同的哈希值。

有没有一种简单的散列图像的方法,该方法仅取决于图像本身(而不取决于时间戳,系统体系结构等)?

请注意,我不需要类似的图像来获得类似/相同的哈希,就像在图像哈希中一样。实际上,我希望不同的图像具有不同的哈希,例如,更改图像的亮度应更改其哈希。

python hash python-imaging-library

5
推荐指数
2
解决办法
1839
查看次数

在python中旋转图像:推断背景颜色

我正在使用以下 python 代码旋转图像:

from PIL import Image

img = Image.open('banana.jpg')
rotated = img.rotate(10)
rotated.save('banana-rotated.jpg')
Run Code Online (Sandbox Code Playgroud)

这进行了以下转换:

在此处输入图片说明在此处输入图片说明

如您所见,背景是黑色的。这个问题询问如何用特定颜色填充背景。但是,我想用图像的颜色填充背景。因为我需要旋转很多图像,所以我不想将背景设置为固定颜色。

有没有办法在边缘扩展图像并从图像中推断出颜色?理想情况下,如果图像没有统一的背景,这也适用。

python image colors rotation python-imaging-library

4
推荐指数
1
解决办法
1947
查看次数