【问题标题】:Keras Convolution Neural Network Dimensions QuestionKeras 卷积神经网络维度问题
【发布时间】:2018-10-11 21:43:45
【问题描述】:

我对从 3-D 矩阵到 1-D 矩阵感兴趣。 1000 行,4 列,16 个样本到 16 个样本,其中 1of4 疾病。

我记得矩阵代数:AX +B = Y 在这种情况下说 B=0, Y= 16x1 那么 AX 的维度是如何以这种方式计算出来的呢?我可以使用什么层来让 Y 最终获得 4 个类别的 16x1 维度?

我会用这样的形状启动卷积网络吗:

conv2D(filter,kernel, input_shape=(16,1000,4))

我将如何用一个给我 4 个类别即密集 (4) 的层来结束它? 请举个例子。

谢谢。

【问题讨论】:

  • 您是否尝试过 keras.layers.Flatten() 将一些 D 矩阵展平为一维 Dense 兼容矩阵?在您的情况下,它是否适合作为卷积和密集之间的连接器?
  • 好主意。让我看看。

标签: python keras conv-neural-network


【解决方案1】:

我真的很难理解你的问题。你的意思是说你的输入是一个 1000 维的特征向量,总共有 16 个,而你的网络输出,即目标,是四种可能的疾病之一?

如果是这种情况,那么您误解了 CNN 的输入形状,其批量大小未计算(您可能使用不同的批量大小,因此我们希望将此参数与模型解耦)。

根据您对 1000 维特征的理解,您希望在将其输入模型之前应用一些特征归一化。

from keras.layers import *
from keras.models import Model

# 1. define model parameters
# 1.1 dropout rate, you may want to use 0 first
dropout_rate = 0.2 
# 1.2 mlp structure
fc_nodes = [128, 32, 8] 
# activation, e.g. relu or tanh
activation = 'relu' 

# 2. define model
# 2.1 define input
# note: batch_size=16 is NOT included in shape
feat_in = Input(shape=(1000,), name='feat_in')
# 2.2 define body
x = feat_in
for idx, nb_nodes in enumerate( fc_nodes ) :
    x = Dense( nb_nodes, activation=activation, name='fc-{}'.format(idx) )(x)
    if ( dropout_rate > 0 ) :
        x = Dropout( dropout_rate, name='dropout-{}'.format(idx))(x)
# 2.3 define output
pred_out = Dense( 4, activation='softmax', name='pred_out')(x)
# 2.4 define model
model = Model( inputs=feat_in, outputs=pred_out, name='my_model')

# 3. display model architecture
print model.summary()

此模型将采用形状为 (batch_size, 1000) 的二维张量并预测形状为 (batch_size, 4) 的二维张量。

顺便说一句,Conv2D 应仅在您的输入类似于图像的情况下使用,这不是您的情况。

【讨论】:

  • 是的,你是对的。应该使用 Conv1D。一张有 1000 行 5 列的表,我有 16 张表。我希望得到 16 个表,每个表都有 A 或 B 或 C 或 D 的预测。
  • 我收到以下错误。我想将矩阵减小到与 Y (16x1) 相同的大小以输入 Dense 是困难的部分。 ValueError:检查目标时出错:预期dense_101有3维,但得到的数组形状为(16, 1)
  • 只是想确保我理解正确。您的样本输入/输出及其尺寸是多少?不清楚是每张表是样本,还是每一行都是样本。
  • 输入 = 1000x5,输出 16x1。
  • 我们应该如何解释这个输出16x1?
猜你喜欢
  • 1970-01-01
  • 2017-07-31
  • 1970-01-01
  • 1970-01-01
  • 2019-05-22
  • 2020-07-10
  • 2021-12-15
  • 2017-01-02
  • 2019-08-18
相关资源
最近更新 更多