非线性映射到更高维度的向量

Non linear mapping to vector of higher dimension

我正在学习 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 实现上面的内容吗?

根据你那里的情况。

这就是我在 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)


....