Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不';t keras.layers.Flatten丢失信息?_Keras_Flatten - Fatal编程技术网

不';t keras.layers.Flatten丢失信息?

不';t keras.layers.Flatten丢失信息?,keras,flatten,Keras,Flatten,一般来说,keras和ML是全新的。我在看,它在嵌入和稠密之间使用了展平,因为嵌入产生了一个二维向量,但稠密需要一个一维 我确信我在这里遗漏了一些明显的东西,但为什么这不丢失哪些单词在哪些输入向量中?我们怎么还能知道输入#3是“很好的工作”,并且与标签#3,1关联,表示“积极” 我猜原始维度是从原始输入中保留下来的,然后以某种方式恢复为Dense的输出?还是我完全忽略了一个主要的概念方面 model = Sequential() model.add(Embedding(vocab_size, 8

一般来说,keras和ML是全新的。我在看,它在嵌入和稠密之间使用了展平,因为嵌入产生了一个二维向量,但稠密需要一个一维

我确信我在这里遗漏了一些明显的东西,但为什么这不丢失哪些单词在哪些输入向量中?我们怎么还能知道输入#3是“很好的工作”,并且与标签#3,1关联,表示“积极”

我猜原始维度是从原始输入中保留下来的,然后以某种方式恢复为Dense的输出?还是我完全忽略了一个主要的概念方面

model = Sequential()
model.add(Embedding(vocab_size, 8, input_length=max_length))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))

谢谢你的指导

嵌入层为每个单词标记提供一个向量,因此输出是二维的。我们需要在任何分类器块之前使用
flatten

有一些信息丢失,例如,当我们使用卷积层,然后平坦的特征地图,空间信息丢失。但是我们已经使用Conv层提取了最重要的特征,并将这些特征提供给完全连接的层

在您的示例中,不再保持时间维度,通常,需要将嵌入矩阵的输出传递到RNN/Conv层以进行进一步的特征提取

  • 仅展平应用于非批处理维度,这意味着示例仍然是分开的(如果您的意思是这样的话)

  • 对于每个样本,比如说,
    nice work
    ,我们得到2个向量(1个代表nice,1个代表work),现在我们只想从句子中了解整体情绪,因此,一旦我们提取特征,我们就可以应用flatte


    • 嵌入层为每个单词标记提供一个向量,因此输出是二维的。我们需要在任何分类器块之前使用
      flatten

      有一些信息丢失,例如,当我们使用卷积层,然后平坦的特征地图,空间信息丢失。但是我们已经使用Conv层提取了最重要的特征,并将这些特征提供给完全连接的层

      在您的示例中,不再保持时间维度,通常,需要将嵌入矩阵的输出传递到RNN/Conv层以进行进一步的特征提取

      • 仅展平应用于非批处理维度,这意味着示例仍然是分开的(如果您的意思是这样的话)

      • 对于每个样本,比如说,
        nice work
        ,我们得到2个向量(1个代表nice,1个代表work),现在我们只想从句子中了解整体情绪,因此,一旦我们提取特征,我们就可以应用flatte


      谢谢!不过我还是错过了一些东西。假设我们的输入是
      nice job
      ,label
      0
      这太差劲了
      ,label
      1
      转换成
      [[1,2],[3,4]]
      扁平化
      [1,2],[3,4]
      。任何学习都发生在
      [1,2,3,4]
      ,而不是
      [1,2],[3,4]]
      ,是吗?但我们需要将输入分开,以确定哪些模式适用于将给定输入与其标签相匹配,对吗?但是我们难道没有忘记这样一个事实:
      sample[0]
      [1,2]
      sample[1]
      [3,4]
      ?很明显,它是有效的,所以我知道我缺少一些基本的东西。只是不知道发生了什么DI在问题中告诉过你,展平在批次维度上不起作用(第一个轴表示样本编号),这意味着[1,2]和[3,4]始终保持分离。另外,嵌入层为每个标记提供一个向量,1->[0.5,0.2,-0.5]类似的内容。此外,权重将被乘以,偏差将被添加到文本序列中。好的,我想我理解你的意思,但我的主要收获是原始样本确实保持分离。(是的,我知道矢量化和偏差等。我只是想保持简单和简短。)再次感谢!编辑:哦,等等,也许我所介绍的简化对扁平化的整个目的都有影响。不管怎样,我现在可以继续前进了。谢谢你的帮助,谢谢!不过我还是错过了一些东西。假设我们的输入是
      nice job
      ,label
      0
      这太差劲了
      ,label
      1
      转换成
      [[1,2],[3,4]]
      扁平化
      [1,2],[3,4]
      。任何学习都发生在
      [1,2,3,4]
      ,而不是
      [1,2],[3,4]]
      ,是吗?但我们需要将输入分开,以确定哪些模式适用于将给定输入与其标签相匹配,对吗?但是我们难道没有忘记这样一个事实:
      sample[0]
      [1,2]
      sample[1]
      [3,4]
      ?很明显,它是有效的,所以我知道我缺少一些基本的东西。只是不知道发生了什么DI在问题中告诉过你,展平在批次维度上不起作用(第一个轴表示样本编号),这意味着[1,2]和[3,4]始终保持分离。另外,嵌入层为每个标记提供一个向量,1->[0.5,0.2,-0.5]类似的内容。此外,权重将被乘以,偏差将被添加到文本序列中。好的,我想我理解你的意思,但我的主要收获是原始样本确实保持分离。(是的,我知道矢量化和偏差等。我只是想保持简单和简短。)再次感谢!编辑:哦,等等,也许我所介绍的简化对扁平化的整个目的都有影响。不管怎样,我现在可以继续前进了。谢谢你的帮助。