我的作业是创建一个类的相等方法,该方法在Java中覆盖Object类的相等方法。我的编码如下,但讲师评论说:“双倍不能与==,!=进行比较,因为存储不准确。”那么在这种情况下如何相应地编辑代码呢?非常感谢你。 class GameSettings {
import theano as th
import theano.tensor as tt
A = tt.tensor3('A') # A.shape = (N, H, D)
B = tt.tensor3('B') # B.shape = (K, H, D)
A_batched = A.reshape((N, H, M, D / M))
B_batched = B.reshape((K, H, M, D / M))
E_batched, _ = th.scan(
lambda a, b: (a[:, :, None, :] * b[:, :, :, None]).sum(1),
sequences=[A_batched.T, B_batched.T]
)
E = E_batched.reshape((D, K, N)).T # E.shape = (N, K, D)
答案 0 :(得分:2)
正如你的讲师所说,比较double并不是简单地使用equals运算符。例如,您可以尝试1不等于1.000。
相反,我们经常使用两个值之间的delta来比较double。如果delta相对较小,那么这些值将相等。
commit