gpt4 book ai didi

python - 可以在python中采用不同形状的输入数组的theano函数

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:23 25 4
gpt4 key购买 nike

在 theano 中,我想创建一个可以接受多个不同输入的函数,例如矩阵和向量。

通常我会这样做:

import theano
import numpy


x = theano.tensor.matrix(dtype=theano.config.floatX)
y = 3*x
f = theano.function([x],y)

但是,当我输入向量而不是矩阵时,例如:

f(numpy.array([1,2,3]))

然后我收到维度不匹配错误:“错误的维度数:预期为 2,得到 1,形状为 (3,)。”

有没有什么方法可以在 theano 中定义一个更通用的输入符号,它既可以接受矩阵,也可以接受不同形状的数组,例如向量或 3 维数组,并且仍然有效?

谢谢。

最佳答案

在编译 Theano 函数时,维数必须固定。编译过程的一部分是根据维数选择操作变体。

您始终可以为高维张量编译函数,只需堆叠您的输入,使其具有所需的形状。

所以

x = theano.tensor.tensor3()
y = 3*x
f = theano.function([x],y)

将接受这些

f(numpy.array([[[1,2]]]))  # (1,1,3) vector wrapped as a tensor3
f(numpy.array([[[1,2],[3,4]]])) # (1,2,2) matrix wrapped as a tensor3
f(numpy.array([[[1,2],[3,4]],[[5,6],[7,8]]])) # (2,2,2) tensor3

关于python - 可以在python中采用不同形状的输入数组的theano函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31080866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com