gpt4 book ai didi

python - 如何在给定 dtype 和形状的情况下创建任意 theano 张量?

转载 作者:行者123 更新时间:2023-12-01 03:59:21 26 4
gpt4 key购买 nike

如何在给定数据类型和形状的情况下创建任意 theano 张量?我不想对形状的长度和数据类型的种类进行大的改变。

import numpy as np
from theano import tensor


def arbitrary_tensor(dtype, shape, name=None):
function = {
np.float32: 'f',
np.float64: 'd',
np.int8: 'b',
np.int16: 'w',
np.int32: 'i',
np.int64: 'l',
np.complex64: 'c',
np.complex128: 'z',
}[dtype]

function += {
0: 'scalar',
1: 'vector',
2: 'matrix',
3: 'tensor3',
4: 'tensor4'}[len(shape)]

return getattr(tensor, function)(name=name)

最佳答案

使用theano.tensor.TensorType(dtype,broadcastable)

dtype 是一个 numpy dtype 字符串,broadcastable 是一个 bool 值列表,指定维度是否可广播。

您的函数的示例是:

def arbitrary_tensor(dtype, shape, name=None):
# create the type.
var_type = theano.tensor.TensorType(
dtype=dtype,
broadcastable=[False]*len(shape))

# create the variable from the type.
return var_type(name)

除了这里的dtype应该是像'float32'这样的字符串,而不是像np.float32这样的numpy对象。如果您绝对必须使用 numpy 对象,那么您必须将它们映射到字符串。

关于python - 如何在给定 dtype 和形状的情况下创建任意 theano 张量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36878195/

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