问题标签 [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 投票
2 回答
638 浏览

python - 如何从 (299,299,3) 创建 (None,299,299,3)?

我正在尝试使用基于 Keras 2 incepctionV3 的训练模型来预测图像以进行测试。我的原始模型运行良好,然后我尝试创建具有指定 input_shape (299,299,3) 的模型

训练过程看起来不错,但是当我尝试使用它来预测图像时,它会导致此错误。

ValueError:检查时出错:预期 input_1 的形状为 (None, 299, 299, 3) 但数组的形状为 (1, 229, 229, 3)

这是打印出来的

(1,299,299,3) 表示 299 X 299 中的 1 张图像,具有 3 个通道。在这种情况下,我的训练模型 (None,299,299,3) 的预期输入是什么意思?如何从 (299,299,3) 创建 (None,299,299,3)?

0 投票
1 回答
579 浏览

python - Keras Lambda CTC 无法加载模型

嗨,我有一个基于此https://github.com/igormq/asr-study/tree/keras-2的模型,该模型几乎可以保存但无法加载(完整模式或 json/weights ) 由于没有正确定义损失这一事实。

这将编译并运行(注意它使用了没有很好记录的 add_loss 函数)。甚至可以说服它通过一些工作来保存 - 正如这篇文章所暗示的那样 ( https://github.com/fchollet/keras/issues/5179 ),您可以通过强制图表完成来保存它。我通过制作一个虚拟的 lambda 损失函数来引入不完全属于图表的输入来做到这一点,现在这似乎可行。

我们可以像这样将它添加到模型中:

现在尝试加载时的损失表示它不能,因为它缺少损失函数(我猜这是因为尽管使用了 add_loss,但它被设置为 None 。

任何帮助在这里表示赞赏

0 投票
1 回答
509 浏览

arrays - 检查输入时出错:预期 acc_input 有 4 个维度,但得到了形状为 (200, 3, 1) 的数组

我已经尝试了很多次并阅读了与我类似的问题的答案,但仍然没有解决。

检查输入时出错:预期 acc_input 有 4 个维度,但得到了形状为 (200, 3, 1) 的数组

我的网络的第一层是输入层

输入是加速度和陀螺仪数据。200指200组数据,3指加速度x,y,z的测量值。我把加速度数据和陀螺数据reshape成(200 * 3 * 1)

输入是三维数据,给定的数据输入是三维的,为什么会有四维的要求?如何修改它?

这是我创建的模型

0 投票
1 回答
1143 浏览

deep-learning - keras 输入层 (Nnoe,200,3),为什么没有?输入有 3 个维度,但得到的数组形状为 (200, 3)

model.fit 中的 acc gyro 为 (200 * 3),Input 层中的形状为 (200 * 3)。为什么会出现这样的问题?检查输入时出错:预期 acc_input 有 3 个维度,但得到了形状为 (200, 3) 的数组。这是我的模型的可视化。

在此处输入图像描述

这是我的代码:</p>

model.fit 中的 acc gyro 为 (200 * 3),Input 层中的形状为 (200 * 3)。为什么会出现这样的问题?检查输入时出错:预期 acc_input 有 3 个维度,但得到了形状为 (200, 3) 的数组

0 投票
0 回答
122 浏览

keras - 是否可以在 keras 的卷积网络中为每个维度使用不同的填充

我想为不同的尺寸使用不同的填充。就我而言,我使用的是 3dconvnet。原因是我想控制不同维度的感受野和轴挤压如何发生。例如,对于几层,我希望填充等效于 ("same","same","same") ,然后对于其他一些层可能具有 ("same","valid","same") 。

我的猜测是做 #maually calculate the paddings ZeroPadding3D(...) Conv3D(padding='valid',...)

0 投票
2 回答
9509 浏览

python - 如何在 Keras 中使用 TensorFlow 指标

似乎已经有几个线程/问题,但在我看来这并没有解决:

如何在 keras 模型中使用 tensorflow 度量函数?

https://github.com/fchollet/keras/issues/6050

https://github.com/fchollet/keras/issues/3230

人们似乎要么遇到变量初始化问题,要么遇到指标为 0 的问题。

我需要计算不同的细分指标,并希望在我的 Keras 模型中包含tf.metric.mean_iou 。这是迄今为止我能想到的最好的:

这段代码不会抛出任何错误,但 mean_iou 总是返回 0。我相信这是因为up_opt没有被评估。我已经看到,在 TF 1.3 之前,人们建议使用一些类似于control_flow_ops.with_dependencies([up_opt], score)的东西来实现这一点。这在 TF 1.3 中似乎不再可能了。

总之,我如何评估 Keras 2.0.6 中的 TF 1.3 指标?这似乎是一个非常重要的功能。

0 投票
6 回答
35548 浏览

machine-learning - Keras:加权二元交叉熵

我试图用 Keras 实现加权二元交叉熵,但我不确定代码是否正确。训练输出似乎有点混乱。几个 epoch 之后,我的准确率只有 ~0.15。我认为那太少了(即使是随机猜测)。

一般来说,输出中大约有 11% 的 1 和 89% 的 0,因此权重为 w_zero=0.89 和 w_one=0.11。

我的代码:

也许有人看到出了什么问题?

谢谢

0 投票
1 回答
593 浏览

tensorflow - 是什么导致 Keras 中 top_k_categorical_accuracy 高但 categorical_accuracy 低

我正在使用 Conv2D 训练一个模型,并开始突然获得 1.0 的最高 k分类准确度,但分类准确度非常低(接近 0.006)。

我有 108 个不同的类别,所以我唯一能想到的就是它会以某种方式卡在一个类别上,即使数据集非常平衡。

所以我的问题很笼统:什么会导致 Keras 中的 top_k_categorical_accuracy 高但 categorical_accuracy 低?

0 投票
4 回答
78645 浏览

python - Keras Sequential 模型中使用的验证数据是什么?

我的问题很简单,传递给 model.fit 的 Sequential 模型中验证数据是什么

而且,它是否会影响模型的训练方式(例如,通常使用验证集来选择模型中的超参数,但我认为这不会发生在这里)?

我说的是可以像这样传递的验证集:

我调查了一下,我看到了keras.models.Sequential.fit调用,它创建了和(可以从回调中访问)这样的keras.models.training.fit变量。还调用,将验证数据添加到,并且还调用,它将在模型的 上批量循环验证数据。此函数的结果用于填充日志的值,这些值是可从回调访问的值。val_accval_losskeras.models.training.fitkeras.models.training._fit_loopcallbacks.validation_datakeras.models.training._test_loopself.test_function

看到这一切后,我觉得传递给的验证集model.fit在训练期间并没有用来验证任何东西,它唯一的用途是获得关于训练模型在每个 epoch 对于一个完全独立的集合的表现的反馈。因此,使用相同的验证和测试集是没问题的,对吧?

除了从回调中读取之外,任何人都可以确认 model.fit 中的验证集是否还有其他目标?

0 投票
1 回答
1161 浏览

python - 如何在 Keras 2.0 中使用 InceptionV3 瓶颈作为输入

我想在 Keras 中使用 InceptionV3 使用瓶颈进行迁移学习。我使用了来自 https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html的一些关于创建、加载和使用瓶颈的技巧

我的问题是我不知道如何使用瓶颈(numpy 数组)作为具有新顶层的 InceptionV3 的输入。

我收到以下错误:

ValueError:检查输入时出错:预期 input_3 的形状为 (None, None, None, 3) 但得到的数组的形状为 (248, 8, 8, 2048)

248 是指本例中的图像总数。

我知道这条线是错误的,但我不知道如何纠正它:

模型=模型(输入=base_model.input,输出=预测)

将瓶颈输入 InceptionV3 的正确方法是什么?

创建 InceptionV3 瓶颈:

加载瓶颈:

开始训练:

任何帮助,将不胜感激!