标签: conv-neural-network

如何绘制使用 ImageDataGenerator 加载的随机图像?

我想绘制加载到 ImageDataGenrator 中的随机图像样本,我该怎么做?

我已经导入了模块,但我不知道如何获取图像

from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale = 1./255)
train = train_datagen.flow_from_directory(PATH, target_size = (IMG_SIZE, IMG_SIZE), batch_size = K, class_mode = None)

plt.imshow(?)

Run Code Online (Sandbox Code Playgroud)

conv-neural-network keras tensorflow

1
推荐指数
1
解决办法
4258
查看次数

为 YOLOv3 分割基于图像的数据集

我有一个关于分割 20k 图像及其标签的数据集的问题,该数据集的格式有YOLOv3一个图像文件和一个.txt与图像同名的文件,文本文件内部有标签。

我想将数据集分割成训练/测试分割,有没有办法随机选择图像及其标签 .txt 文件并将其存储在单独的文件夹中Python

我希望能够随机分割数据集。例如,也选择 16k 文件和标签文件,并将它们单独存储在 train 文件夹中,其余 4k 应存储在 test 文件夹中。

这可以在文件资源管理器中手动完成,方法是选择前 16k 个文件并将它们移动到不同的文件夹,但分割不会是随机的,因为我计划对同一数据集一遍又一遍地执行此操作。

这是数据的 图像和标签屏幕截图

python dataset conv-neural-network yolo

1
推荐指数
1
解决办法
2148
查看次数

TensorFlow - ValueError:形状(无,1)和(无,10)不兼容

我正在尝试使用此链接中的“街景门牌号(SVHN)数据集”来实现图像分类器。我使用的格式 2 包含从 0 到 9 的 32x32 RGB 居中数字图像。当我尝试编译并拟合模型时,出现以下错误:

Epoch 1/10
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-37-31870b6986af> in <module>()
      3 
      4 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
----> 5 model.fit(trainX, trainY, validation_data=(validX, validY), batch_size=128, epochs=10)

9 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/func_graph.py in wrapper(*args, **kwargs)
    975           except Exception as e:  # pylint:disable=broad-except
    976             if hasattr(e, "ag_error_metadata"):
--> 977               raise e.ag_error_metadata.to_exception(e)
    978             else:
    979               raise

ValueError: in user code:

    /usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:805 train_function  *
        return step_function(self, iterator)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:795 step_function  **
        outputs = model.distribute_strategy.run(run_step, args=(data,))
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py:1259 run …
Run Code Online (Sandbox Code Playgroud)

python conv-neural-network keras tensorflow

1
推荐指数
1
解决办法
1万
查看次数

哪个 Shap-Explainer 符合我的要求

我创建了一个以 Keras 和 Tensorflow 作为后端的 CNN,我的数据由表示 EEG(脑电图)的 2D 图像组成,这些图像来自预处理的DEAP 数据集

我曾考虑过使用SHAP作为模型解释器,但由于有几种形状解释器(内核、深度、线性、梯度...),我不确定哪一个最适合我的需求,或者甚至 SHAP 是否对我的工作有帮助案件。由于我的图像(尺寸:40x100x1,第三维来自np.expand_dims,因为 keras 需要 3D 图像)没有颜色,SHAP 是一个相当好的方法吗?

我的数据集中的一项的片段

[[[ 3.10000000e+01]
[ 3.00000000e+01]
[-1.14638321e-01]

[ 1.24121500e+02]
[ 3.11109855e+00]
[-1.93024874e-01]]
...
[[ 3.10000000e+01]
[ 3.00000000e+01]
[-6.61770462e-02]]]
Run Code Online (Sandbox Code Playgroud)

从我的数据集中绘制上述项目

在此输入图像描述

希望有人能帮助我或指出正确的方向,谢谢!

python conv-neural-network keras tensorflow shap

1
推荐指数
1
解决办法
2140
查看次数

PyTorch 中的填充如何工作

通常,如果我很好地理解 Conv2D 层的 PyTorch 实现,则填充参数会将带有零的卷积图像的形状扩展到输入的所有四个边。因此,如果我们有形状为 (6,6) 的图像并设置padding = 2strides = 2kernel = (5,5),则输出将是形状为 (1,1) 的图像。然后,padding = 2用零填充(上 2 个、下 2 个、左 2 个、右 2 个),得到形状为 (5,5) 的卷积图像

但是,当运行以下脚本时:

import torch
from torch import nn
x = torch.ones(1,1,6,6)
y = nn.Conv2d(in_channels= 1, out_channels=1, 
              kernel_size= 5, stride = 2, 
              padding = 2,)(x)
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

y.shape
==> torch.Size([1, 1, 3, 3]) ("So shape of convolved image = (3,3) instead of (5,5)")

y[0][0]
==> tensor([[0.1892, 0.1718, 0.2627, …
Run Code Online (Sandbox Code Playgroud)

conv-neural-network pytorch

1
推荐指数
1
解决办法
7907
查看次数

ValueError:分类指标无法处理多类和连续多输出目标的混合

我正在尝试使用 Cifar10 数据集计算多类分类问题的 f1 分数。我正在从 sklearn 库导入 f1 指标。但是我不断收到以下错误消息:

ValueError: Classification metrics can't handle a mix of multiclass and continuous-multioutput targets

Run Code Online (Sandbox Code Playgroud)

下面是我在验证集上测试模型的函数。有人能够解释在执行多类分类时如何计算 f1 吗?我很困惑。

@torch.no_grad()
def valid_function(model, optimizer, val_loader):
  model.eval()

  val_loss = 0.0
  val_accu = 0.0
  f_one = []
  for i, (x_val, y_val) in enumerate(val_loader):

    x_val, y_val = x_val.to(device), y_val.to(device)

    val_pred = model(x_val)
    loss = criterion(val_pred, y_val)

    val_loss += loss.item()
    val_accu += accuracy(val_pred, y_val)
    f_one.append(f1_score(y_val.cpu(), val_pred.cpu()))


  val_loss /= len(val_loader)
  val_accu /= len(val_loader)
      
  print('Val Loss: %.3f | Val Accuracy: %.3f'%(val_loss,val_accu))

  return …
Run Code Online (Sandbox Code Playgroud)

metrics machine-learning conv-neural-network multiclass-classification

1
推荐指数
1
解决办法
7652
查看次数

使用Caffe提取图像特征以用于自定义图像分类器

我想获得预先构建的caffe模型的第6层的输出并在其上训练SVM.我的目的是构建一个自定义图像分类器,用户可以在其中创建自定义图像类,并在这些类之间对输入图像进行分类,而不是imagenet类.这里是伪代码:

#input
file='cat.jpg'
image=caffe.io.load_image(file)

#model
net = caffe.Classifier('deploy.prototxt','model.caffemodel')

#compute activation at layer 6 --- Need help here. Will net.forward help? will the activation be retained? 

#extract features from layer 6:

features = net.blobs['fc6'].data[4][:,0, 0]


#SVM
category=svm.predict(features)
print get_category_name(category)
Run Code Online (Sandbox Code Playgroud)

python computer-vision neural-network caffe conv-neural-network

0
推荐指数
1
解决办法
5005
查看次数

给出输入示例获取中间层的激活值

假设我已经定义了我的顺序模型如下:

require 'nn'
net = nn.Sequential()
net:add(nn.SpatialConvolution(1, 6, 5, 5)) -- 1 input image channel, 6 output channels, 5x5 convolution kernel
net:add(nn.ReLU())                       -- non-linearity 
net:add(nn.SpatialMaxPooling(2,2,2,2))     -- A max-pooling operation that looks at 2x2 windows and finds the max.
net:add(nn.SpatialConvolution(6, 16, 5, 5))
net:add(nn.ReLU())                       -- non-linearity 
net:add(nn.SpatialMaxPooling(2,2,2,2))
net:add(nn.View(16*5*5))                    -- reshapes from a 3D tensor of 16x5x5 into 1D tensor of 16*5*5
net:add(nn.Linear(16*5*5, 120))             -- fully connected layer (matrix multiplication between input and weights)
net:add(nn.ReLU())                       -- non-linearity 
net:add(nn.Linear(120, 84))
net:add(nn.ReLU())                       -- non-linearity …
Run Code Online (Sandbox Code Playgroud)

machine-learning neural-network torch conv-neural-network

0
推荐指数
1
解决办法
670
查看次数

tensorflow加载模型给出了不同的预测

我的代码是预测句子的情绪.我训练了一个CNN模型并保存了它.当我加载我的模型并尝试预测句子的情绪时,我对同一个句子有不同的预测.我的代码如下,当我尝试通过调用底部的函数predict_cnn_word2vec来预测sentene时,问题就出现了:

import logging;
import numpy as np; 
import tensorflow as tf;
import sklearn as sk
import re; 
import json
import string;
import math
import os
from sklearn.metrics import recall_score, f1_score, precision_score;



class CNN(object):
def __init__(self,logger):
    self.logger = logger; 


def _weight_variable(self,shape):
    initial = tf.truncated_normal(shape, stddev = 0.1); 
    return tf.Variable(initial);

def _bias_variable(self,shape):
    initial = tf.constant(0.1, shape = shape); 
    return tf.Variable(initial);

def _conv2d(self,x, W, b, strides=1):
    # convolve and relu activation
    x = tf.nn.conv2d(x, W, strides=[1, strides, strides, 1], padding='SAME');
    x = tf.nn.bias_add(x, …
Run Code Online (Sandbox Code Playgroud)

machine-learning sentiment-analysis conv-neural-network tensorflow

0
推荐指数
1
解决办法
1335
查看次数

什么是物体检测“头”?

我目前正在阅读SSD Single Shot Detector,并且有一个我很难理解的术语。该术语是“头”。当我听到这个词时,就像起初一样,我想到了网络的负责人。

我查看了由Google创建的对象检测API,发现带有不同头部类型的“ heads”文件夹,一种用于框编码,另一种用于类预测。

抽象的“ head”类的文档不是超级启发性的:

不同模型中所有不同种类的预测头都将从该类继承。所有头类之间的共同点是它们具有一个 作为其第一个参数predict接收的features函数。

我想我对它们有较高的了解,但是我对它们没有具体的定义。有人可以定义一个“头”并解释如何拥有“盒子预测头”或“分类头”吗?

machine-learning computer-vision neural-network conv-neural-network object-detection-api

0
推荐指数
1
解决办法
457
查看次数