非线性映射到更高维向量

时间:2018-03-20 03:42:01

标签: python deep-learning keras dimensions pytorch

我正在学习Keras并需要以下方面的帮助。我目前在列表X和Y中有一系列浮点数。我需要做的是使用非线性映射将每个元素映射到更高维度的向量,遵循以下等式。

pos(i) = tanh(W.[concat(X[i],Y[i]])
#where W is a learnable weight matrix, concat performs the concatenation and pos(i) is a vector of 16x1. (I'm trying to create 16 channel inputs for a CNN).

我发现上面的Pytorch实现是

m = nn.linear(2,16)
input = torch.cat(X[i],Y[i])    
torch.nn.functional.tanh(m(input))

目前我已经在numpy尝试了concat和tanh,这似乎不是我想要的。

您能否帮助我使用Keras实现上述目标。

1 个答案:

答案 0 :(得分:1)

根据你的情况而定。

这就是我在keras中所做的。我假设您只是希望在将输入输入模型之前连接输入。

所以我们用numpy来做。注意

类似的东西:

import numpy as np
from keras.model import Dense, Model,Input
X = np.random.rand(100, 1)
Y = np.random.rand(100, 1)
y = np.random.rand(100, 16)
# concatenate along the features in numpy
XY = np.cancatenate(X, Y, axis=1)


# write model
in = Input(shape=(2, ))
out = Dense(16, activation='tanh')(in)
# print(out.shape) (?, 16)
model = Model(in, out)
model.compile(loss='mse', optimizer='adam')
model.fit(XY, y)


....