【问题标题】:tuple index out of range (Python + Chainer)元组索引超出范围(Python + Chainer)
【发布时间】:2018-04-24 10:29:54
【问题描述】:

我是新手,是编码的初学者。 目前,我正计划自己编写一个自动编码器来减少功能。 虽然我大部分时间都通过查看网站和书籍来解决我遇到的错误,但我仍然在调试。

dtypes 是 float64(5),Row 和 column 是 (37310, 5)。

任何 cmets 都应该有帮助。 提前谢谢你!

data1 = pd.read_csv("Omics small data3.csv")
df = pd.DataFrame(data1)
KA = df.as_matrix()
KA.shape

KA = Variable(np.array([37310, 5]).astype(np.float))
X = np.array(KA)

class MyAE(Chain):
    def __init__(self):
        super(MyAE, self).__init__(
                l1=L.Linear(500,100),
                l2=L.Linear(100,500),
        )
    def __call__(self,x):
            bv = self.fwd(x)
            return F.mean_squared_error(bv, x)
    def fwd(self,x):
            h1 = (self.l1(x))
            h2 = F.sigmoid(self.l2(h1))
            bv = self.l3(h2)
            return bv

model = MyAE()
optimizer = optimizers.SGD()
optimizer.setup(model)

n = 150
bs = 30

for i in range(0, n, bs):
    x = Variable(X)
    model.cleargrads()
    loss = model(x)
    loss.backword()
    optimizer.updata()

import matplotlib.pyplot as plt
x = Variable(X)
y = F.sigmoid(model.l1(x))
plt.scatter(x, y)

【问题讨论】:

  • 这里有很多“输入代码”...您能否正确格式化您的代码...
  • 是的,我会努力的。
  • 给您带来的不便,我深表歉意。
  • 整个错误信息是什么?
  • 抱歉回复晚了。它说... x_type.shape[1] == w_type.shape[1], IndexError: tuple index out of range 你知道吗?谢谢。

标签: python autoencoder chainer


【解决方案1】:

您的输入变量和线性层尺寸不匹配。

请尝试 l1=L.Linear(None,100) 或者 l1=L.Linear(5,100)

如果输入大小为无,将自动设置适当的大小。

【讨论】:

  • 非常感谢您的帮助,深谷先生。是的,我终于能够解决这个问题。我正在通过反复试验的过程来学习。再次感谢您。
猜你喜欢
  • 2016-04-04
  • 2013-12-16
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多