如何使用向量输入创建全连接(矩阵)层

人工智能 卷积神经网络
2021-11-05 16:47:38

我正在尝试用大小为 100x300 的矩阵替换最后一个大小为 4096/2048 的完全连接层,之前的 fc 层输出为 2048。

这类的东西:这类的东西

我试过了

  1. 2D 卷积 - 从 2048 映射-> 100x300(无法实现)
  2. 中间预测:
    2048 --> 100
    [100x1] X [1x300] --> [100x300](可能但复杂)

我正在寻找一种线性变换最少的简单有效的解决方案。

这是需要的

1个回答

您可以使用tf.reshape()方法(tensorflow doc)将(2048)维度张量重塑为(100,300). 这是执行此操作的一种方法:

input1 = tf.reshape(input1, [100,300], name="reshaped_tensor")

如果你不使用 TensorFlow 而是使用 Numpy,这里有一个实现:

input1 = np.array(input1)
input1 = np.reshape(input1, (100,300))

注意:您可能希望在此层之后使用tf.nn.conv2d层来“增密”从上述步骤获得的稀疏矩阵/值。