首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算输出的差异,theano,non theano

计算输出的差异,theano,non theano
EN

Stack Overflow用户
提问于 2016-08-20 09:23:31
回答 1查看 51关注 0票数 0

我开始尝试theano,所以我试着计算一个简单的函数并测试输出,但是当我测试theano编译版本和非theano版本时,输出有点不同……

代码:

代码语言:javascript
复制
import numpy as np
import theano.tensor as T
from theano import function

np.random.seed(1)
S = np.random.rand(4,3)
Q = np.random.rand(4,3)

def MSE(a, b):
    n = min(a.shape[0], b.shape[0])
    fhat = T.dvector('fhat')
    y = T.dvector('y')
    mse = ((y - fhat)**2).sum() / n
    mse_f = function([y, fhat], mse)
    return mse_f(a,b)

for row in range(S.shape[0]):
    print(MSE(S[row], Q[row]))

for i in range(S.shape[0]):
    print(((S[i] - Q[i])**2).sum() / S.shape[0])

输出:

代码语言:javascript
复制
# from MSE function
0.0623486922837
0.0652202301174
0.151698460419
0.187325204482

# non theano output
0.0467615192128
0.0489151725881
0.113773845314
0.140493903362

我在这里忽略了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-20 09:43:27

在此语句的表达式中

代码语言:javascript
复制
    print(((S[i] - Q[i])**2).sum() / S.shape[0])

你应该除以S.shape[1],而不是S.shape[0]

您使用S = np.random.rand(4,3)创建了S,这意味着S具有形状(4,3)。也就是说,S.shape(4, 3)S中每行的长度为S.shape[1]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39049616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档