问题标签 [convolutional-neural-network]

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 回答
1552 浏览

python - 无法弄清楚如何在 Keras 的 Conv2D 层中为我自己的数据集定义 input_shape

总长,博士

定义输入形状时出现这些错误

或者

长显式版本:

我正在使用不同的 Keras NN 来尝试对我自己的数据集进行分类。

到目前为止,我的 ANN 取得了成功,但我的 CNN 遇到了麻烦。

数据集

完整代码

数据集由指定大小并用 0 填充的矩阵组成,其中包含指定大小并用 1 填充的子矩阵。子矩阵是可选的,目标是训练神经网络预测矩阵是否包含子矩阵。为了使其更难检测,我在矩阵中添加了各种类型的噪声。

这是一个单独矩阵的图片,黑色部分是 0,白色部分是 1。图像的像素与矩阵中的条目之间存在 1:1 的对应关系。

在此处输入图像描述

我使用 numpy savetxt 和 loadtxt 将它们保存在文本中。然后看起来像这样:

完整的数据集

CNN代码

Github

代码:(省略导入)

问题:

我收到此输出错误消息

我真的不知道我该如何解决这个问题。我查看了Conv2D 的文档,该文档说要以这样的形式放置它:(batch, height, width, channels)。就我而言,这是(我认为):

,因为我有 4000 个只有 1 和 0 的 20*20 矩阵

但随后我收到此错误消息:

我应该以哪种确切的形状将数据传递到 CNN?

所有文件都可以在这里找到 感谢您的宝贵时间。

0 投票
1 回答
53 浏览

python-3.x - 为什么我的网络在第二批中因 TypeError 而停止?

我的网络开始学习并且在第一批看起来还不错,然后突然停止,仅在第二批出现 TypeError!为什么第一批就可以了?或者为什么它在第一次之后就破裂了?令人震惊的错误...以下是详细信息:

我已经构建了一个 CNN,它试图为每张图像预测 124 个特征。图像大小为61 x 72像素,数字的输出向量大小为124 x 1这些图像是数字在1-1之间的浮点矩阵。我试图预测的信息在一个 CSV 文件中,每一行描述一个图像。当我为训练过程加载数据时,我会处理每一行并重塑它们,还可以获得网络正在学习的图片。但是,当我运行我的程序时,第二批出现以下错误:

“TypeError: Fetch argument 2.7674865e+09 has invalid type ,必须是字符串或张量。(无法将 float32 转换为张量或操作。)”

你能帮忙找出问题所在吗?这是我的代码:

0 投票
0 回答
1453 浏览

python - Keras:ValueError:两个形状中的维度 0 必须相等(VGGNets)

我正在学习教程VGGNet16,并使用预训练模型收费Keras

我曾经model.save('path/model_1.h5')在训练后保存模型model.fit_generator(...)

然后我没时间了Colaboratory。所以我想用model = load_model('path/model_1.h5')再次加载我的模型,而不是再次加载模型vgg16_model = keras.applications.vgg16.VGG16()...

现在我收到了这个错误:

我错过了什么?比你!

0 投票
1 回答
91 浏览

python - Keras 卷积网络分类可以添加 1D 额外特征吗?

我使用 Keras 构建了一个成功的卷积网络,从 EEG 中对某些大脑活动进行分类。然而,我想通过添加一个我们知道它可以预测这种大脑活动的额外特征来改进它;年龄,当然是不同比例的一维数组。我该怎么做?

我可以将年龄添加到“图像”作为额外维度吗?或者我应该使用年龄对不同模型中的大脑活动进行分类,然后合并两个模型?或者有选择吗?

感谢您提供任何提示并与我一起思考!

最好的,

汉内克

0 投票
1 回答
111 浏览

tensorflow - 多标签分类项目:如何改善不良性能

情境化
我正在构建一个模型,用于识别给定图像中的三个类别。
分为三类:

  • 性别:男/女

  • 类型 clotes:西装外套、西装外套和夹克、衬衫、开衫、大衣、外套和夹克、裙裤、连衣裙、牛仔裤、套头衫、连身裤和工装裤、针织衫和运动衫、打底裤和香烟裤、孕妇装、Polo、Pololong、衬衫、短裤、裙子、西装、泳装、泳装和沙滩装、T - 衬衫、T 恤和上衣、裤子、束腰外衣。

  • 颜色衣服:米色,黑色,蓝色,棕色,绿色,灰色,橙色,粉红色,红色,白色,黄色。

换句话说,每张图片都应该有这 3 个类别(每个类别一个值)。

数据
我用于训练模型的数据库由1812张图像和一个 excel 文件组成,其中包含每个图像的三个类别的值(及其 url)。
以下是有关我的数据库的一些信息:

  • 男性人数:759
  • 女性人数:1055
  • 我还有每个属性(来自每个类别)出现在我的数据库中的次数(我无法列出所有属性,但如果它对解释有用,我可以向您发送该信息)
  • 出现次数最多的三胞胎是(男、牛仔裤、蓝色):66 次

我所做的事情
似乎很清楚,我处于多标签分类环境中。
1. 清理和预处理我
创建的数据(X,Y)数据,其中X的形状为(1814,204,204,3)Y的形状为(1814,39) '' 39 对应于虚拟变量:类别 1 有2 个属性,第 2 类有 26 个属性,第 3 类有 11 个属性:所以总共是 39 ''。
2.建立我的神经网络
我的模型的不同参数是:

  • 历元 = 100
  • lrate = 0.001
  • 衰减 = lrate/epochs
  • sgd = SGD(lr=lrate,动量=0.9,衰减=衰减,nesterov=False)
  • 损失=二进制交叉熵
  • 优化器=sgd
  • 指标=准确性

我训练的网络结构如下:

问题

  1. 我不认为我的 metric ='accuracy' 是一个好的选择:它并不能反映所发生事情的现实。例如,我对我的训练数据进行了评估测试,得到了 0.95(95% 的 bin 分类良好),但这并不意味着模型表现良好,因为在每个输出中:应该有 3 个39 个分量,其余的都是零。所以很有可能有很多零,因此即使在最坏的情况下,39 个值被预测为 0(没有检测到)比我们的 36/39 精度:哪个不能反映真正的问题?(这就是我得到的结果,对于给定的 X,我得到了许多接近零的值,所以当我使用阈值(0.5)时,它使一切都等于零:
  2. 你认为我的模型表现不佳是因为我没有很多图像吗?(每个标签的图像)?
  3. 你认为我的模型性能不好是因为神经网络的结构不好吗?我尝试使用预训练模型来修复第一层,因为最先进的技术表明这些层负责检测边缘,而我只训练了下一层:在这种情况下,我的结果也很糟糕(通过“准确度”指标计算) ?
  4. 总而言之,我知道我的问题可能没有通用的解决方案,但至少我想知道可能导致这些问题的原因以及如何解决这些问题?因此,欢迎任何帮助,尤其是来自在输出中有许多标签的多标签分类工作的人
0 投票
1 回答
111 浏览

python - 我的 TensorFlow FCN 的权重都降到了 0

我正在尝试在 TensorFlow 中实现完全卷积网络(5 层)。但是经过几次训练,我所有的 logits 都降到了 0。以前有人遇到过同样的问题吗?

这是我实现 CONV-ReLU-maxPOOL 层的方式:

这是我的网络:

损失函数:

我的主要程序:

我注意到,如果我只将网络减少到 2 层,它不会将 logits 降至 0,但它也不会学到任何东西。如果我将它减少到 3 层,它将下降到 0,但经过多次迭代(而 5 层在几批中下降到 0)。

这可以与所谓的“梯度消失”联系起来吗?

如果相关,我的规范是:Ubuntu 16.04 - Python 3.6.4 - tensorflow 1.6.0

[编辑] 我的问题看起来真的像死 ReLU,如此处所述:StackOverflow:FCN 训练错误,但我的数据已标准化(介于 -2 和 +2 之间,并且我已经尝试更改平均值和 stddev 初始值我的权重和偏见

[编辑 2] 我尝试用 Leaky ReLU 或 softplus 替换 ReLU,在这两种情况下,logits 都停留在 0.1 以下,而 loss 保持在 0.6 和 0.7 之间

0 投票
1 回答
122 浏览

torch - 如何使用经过训练的 CNN 模型(torch7 格式)进行单张图像推理?

我已经获得了torch7 格式的训练有素的CNN 模型。

如何使用已经训练好的模型对单个图像进行推理并返回预测,类似于

0 投票
1 回答
311 浏览

database - 在 MATLAB 中实现一维 CNN 的信号数据库

我正在为信号分类问题实现 CNN,为此我需要创建信号数据库,作为 CNN 的输入。

要创建数据库,需要调用一个函数imageDatastore和一些其他数据库函数,它们将只创建图像数据库。如果信号以 .mat(大小为 nx1 的数组)格式存储并提供给此函数,它将创建数据库,但在trainNetwork时会出现问题,错误为无法读取文件。

这是我用来创建数据库的代码,但在训练网络时它不起作用。

我应该对现有功能进行哪些更改以获得信号数据库?

0 投票
1 回答
1711 浏览

python-3.x - 使用 Keras 进行多类图像分类的多重预测

CNN在 Keras 中训练了一个文件夹中的图像(两种蜜蜂)。我有第二个文件夹,其中bees包含用于预测的未标记图像。

我能够预测单个图像(根据下面的代码)。

结果:

我希望能够预测所有图像(大约 300 个)。

有没有办法批量加载和预测所有图像?并且将predict()能够处理它,正如它所期望的和数组预测的那样?

0 投票
1 回答
1523 浏览

python - TensorFlow 模型零损失

我花了几个小时试图系统地弄清楚为什么我在运行这个模型时得到了 0 损失。

  • 特征 = 每个图像的文件位置列表(例如 ['\data\train\cat.0.jpg', /data\train\cat.1.jpg])
  • 标签 = [Batch_size, 1] one_hot 向量

最初我认为这是因为我的数据有问题。但是我在调​​整大小后查看了数据,图像看起来很好。

然后我尝试了一些不同的损失函数,因为我想也许我误解了 tensorflow 函数的softmax_cross_entropy作用,但这并没有解决任何问题。

我试过只运行“logits”部分来查看输出是什么。这只是一个小样本,数字对我来说似乎很好:

既然相应的标签是 0 或 1,那么softmax_cross_entropy函数应该能够计算这个损失吗?我不确定我是否遗漏了什么。任何帮助将不胜感激。