问题标签 [keras-2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1344 浏览

python-3.x - 如何在不指定输入(或输入形状)的情况下在 keras 2 功能 API 中链接/组合图层

我希望能够将几层放在一起,但在指定输入之前,如下所示:

请注意,如果可以避免,我不想指定输入或其形状,我想稍后将其用作多个输入的共享层。

有没有办法做到这一点?上面给出了以下错误:

抓取 conv 层的输出也不能解决问题:

0 投票
1 回答
1679 浏览

python - Keras - 对 K.zeros 形状使用张量形状

我正在使用自定义softmax功能。我正在尝试使用张量x的形状作为零的新张量的形状元素。它不能完成,因为它不是 int。

我尝试的下一个选项是评估张量,它应该有效但无效。

它给了我错误

这是完全无法理解的,因为它引用了不正确的主网络输入。当我将形状的值硬编码在K.zeros. 还有其他解决方案吗?

0 投票
0 回答
1477 浏览

python - 在 keras 中实施对抗性训练

我想用一个分类器实现一个对抗性网络,该分类器的输出连接到一个对手,该对手必须根据分类器的输出猜测分类器输入的特定特征(一个讨厌的参数)(详细描述这样的对抗网络可以在这篇论文中找到:learning to pivot with adversarial networks

然后将像这样训练模型:

  1. 批量训练对手(分类器将被固定)
  2. 冻结对手
  3. 训练整个模型,而对手被冻结在一个批次上
  4. 解冻对手
  5. 重复其他批次
  6. 随机播放并重复其他时期

在训练对手时,我希望损失函数是分类交叉熵,而在训练整个模型时,我希望它是分类器的损失函数(二元交叉熵损失)减去对手的损失乘以参数:L_c() - b * L_a().

我见过的大多数对抗性训练代码都是在 Keras 中使用 train_on_batch 进行训练的。但是,由于我已经用另一个顺序模型设置了很多代码,并且我想重用它,我想知道是否有办法实现这个模型并在 Keras 中使用 model.fit 对其进行训练。

我想做的是使用 Keras 功能 API 设置模型,分类器输入作为输入,分类器和对手输出作为输出。我还会将该模型编译为只有一个输出的对抗模型。例如:

然后我想在 on_batch_begin 中设置一个回调来训练对手(在冻结分类器中的层之后),然后使用 model.fit 代码完成对 final_model 的训练(我将冻结对手并解冻分类器层on_batch_begin 就在 final_model 的训练开始之前)。

但是后来我不知道是否可以将当前批次作为参数传递给 on_batch_begin。我是否必须在回调中设置自己的批次,还是可以通过 model.fit 传递批次?

有没有更好的方法在仍然使用 model.fit 的同时进行对抗训练?

0 投票
0 回答
437 浏览

keras - Keras 度量在 K.mean 中产生无限结果

编辑:这实际上是一个被零除的错误。:(

我在 Keras 中创建了一个度量函数来计算平均小数误差;也就是说,对于每个实际/预测对,我计算abs(actual - predict)/actual,然后找到所有数据的平均值。代码如下。

在小型数据集(例如 6,000 个标量值)上应用该指标时,可以准确生成结果。在较大的值(10,000 个值)上计算时,结果为inf。我怀疑它在 K.mean 上失败了,因为当我尝试手动计算平均值时也会发生同样的情况。我已经测试了 tensorflow 和 theano 后端。

我可以采取什么解决方法来计算平均值?

0 投票
1 回答
1605 浏览

machine-learning - Keras中多输出模型的验证损失和验证数据

我想在 Keras 中训练一个具有一个输入和两个输出的模型,但我在验证设置方面遇到了一些问题。

1) Keras功能 API 文档说,当有多个输出时,model.fit 可以将一个 numpy 数组列表作为输出。但是,对于 model.fit 的 validation_data 参数,它表示模型可以采用 (x_val, y_val) 或 (x_val, y_val, val_sample_weights) 形式的元组。那么我怎样才能传入我的第二个输出的 y_val 呢?我可以使用validation_split 来做到这一点,还是验证拆分也只适用于我的一个输出?

2) 还有什么是传递给 EarlyStopping 回调的验证损失?对于 model.evaluate 等函数返回的损失,将返回两个损失值。对于训练,损失的总和乘以它们的权重将被最小化。这如何与 EarlyStopping 一起工作?我希望提前停止也基于损失总和乘以权重的最小化,但我不知道这是否会实际发生。

0 投票
1 回答
3279 浏览

runtime-error - 用于语义分割的 Keras,flow_from_directory() 错误

我试图使用我对 Keras 文档中示例代码的修改,该文档显示了在使用图像掩码代替标签的情况下如何设置 image_datagen.flow_from_directory()(对于图像分割,我们正在预测一个类每个像素)。

顺便说一句,我设置 featurewise_center = True 试图从每个图像的颜色通道中减去所有训练图像的每个颜色通道的平均值,这样在整个训练集中,每个颜色通道的平均值将为 0。我希望这个不是实现这一目标的方法。

无论如何,这是我产生错误的代码:

这是错误消息:

由于某种原因n = 0。任何想法为什么会发生这种情况?

0 投票
1 回答
118 浏览

neural-network - NN 批量和训​​练精度

我有基于 InceptionV3 的神经网络。
在 epoch 期间分批喂它会产生很好的结果,例如:

训练完成后,我决定检查整个训练数据集的训练准确性。

给了我 0.52520718232044195

这怎么可能?

0 投票
1 回答
121 浏览

memory-leaks - 使用 flow_from_directory 的内存泄漏

我正在尝试实现文档页面上描述的技术

在“将图像和蒙版一起转换的示例”标题下。

以下之后,

命令出现问题:

这导致内存使用率上升到最大可能,然后交换也上升到最大值,此时我的系统冻结并需要重新启动。

有没有人知道这里发生了什么?

0 投票
1 回答
1183 浏览

tensorflow - 在 Keras 中使用 Masking-layer 和 ConvLSTM2D-layer

我正在尝试使用带有 TensorFlow 后端(1.2.1)的 Keras(2.0.6)从卷积 LSTM 层中屏蔽丢失的数据:

但是我收到以下ValueError:

如何将 Masking 与 ConvLSTM2D 层一起使用?

0 投票
2 回答
666 浏览

python - Python - Tensorflow - LSTM- ValueError:检查模型目标时出错:预期dense_16具有形状(无,100)但得到形状为(16、2)的数组

有人可以帮我理解这个错误是怎么回事吗?

当我运行这个 LSTM 模型时,我收到一个错误

我不确定以下信息有多大用处:

如果您需要任何其他信息,我随时准备提供