标签: conv-neural-network

Keras ValueError:输入0与图层conv2d_1不兼容:预期ndim = 4,发现ndim = 5

我检查了所有解决方案,但我仍面临同样的错误.我的训练图像形状是(26721,32,32,1),我相信它是4维,但我不知道为什么错误显示它是5维.

 model = Sequential()

 model.add(Convolution2D(16, 5, 5, border_mode='same', input_shape= input_shape ))
Run Code Online (Sandbox Code Playgroud)

所以这就是我定义model.fit_generator的方法

(26721, 32, 32, 1)

有人可以帮我这个吗?

python deep-learning conv-neural-network keras tensorflow

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

keras 中的因果填充

有人可以解释 Keras 中“因果”填充背后的直觉。是否有任何特定的应用程序可以使用它?

keras 手册说这种类型的填充会导致扩张卷积。“扩张”卷积究竟意味着什么?

python conv-neural-network keras

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

张量流:回调方法“on_train_batch_end”与批处理时间相比很慢

我正在尝试使用 RandomSearch 创建 CNN 模型,但它非常慢并且会弹出此错误tensorflow:Callback method on_train_batch_end is slow compared to the batch time 我正在 google colab 中运行我的代码,并在 gpu 上设置硬件加速这是我的代码

def model_builder(hp):
    model=Sequential([
        Conv2D(filters=hp.Int('conv_1_filter',min_value=32,max_value=128,step=32),
               kernel_size=hp.Int('conv_1_filter',min_value=2,max_value=3,step=1),
               activation='relu',
               padding='same',
               input_shape=(200,200,3)),
        MaxPooling2D(pool_size=(2,2),strides=(2,2)),
        
        Conv2D(filters=hp.Int('conv_2_filter',min_value=32,max_value=128,step=32),
               kernel_size=hp.Int('conv_2_filter',min_value=2,max_value=3,step=1),
               padding='same',
               activation='relu'),
        MaxPooling2D(pool_size=(2,2),strides=(2,2)),
        
        Flatten(),
        
        Dense(units=hp.Int('dense_1_units',min_value=32,max_value=512,step=128),
              activation='relu'),
        
        Dense(units=10,
              activation='softmax')
               
    ])
    
    model.compile(optimizer=Adam(hp.Choice('learning_rate',values=[1e-1,1e-3,3e-2])),
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
    return model
Run Code Online (Sandbox Code Playgroud)

然后随机搜索和拟合

tuner=RandomSearch(model_builder,
                   objective='val_accuracy',
                   max_trials=2,
                   directory='projects',
                   project_name='Hypercars CNN'
                  )
tuner.search(X_train,Y_train,epochs=2,validation_split=0.2)
Run Code Online (Sandbox Code Playgroud)

conv-neural-network keras tensorflow

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

如何在keras中使用并行卷积层?

我对神经网络和keras有点新.我有一些大小为6*7的图像,过滤器的大小为15.我想有几个过滤器并分别训练卷积层,然后将它们组合起来.我在这里看了一个例子:

model = Sequential()
model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1],
                    border_mode='valid',
                    input_shape=input_shape))
model.add(Activation('relu'))
model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=pool_size))
model.add(Dropout(0.25))
model.add(Flatten(input_shape=input_shape))
model.add(Dense(128))
model.add(Activation('relu'))
model.add(Dense(128))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(nb_classes))
model.add(Activation('tanh'))
Run Code Online (Sandbox Code Playgroud)

此模型适用于一个过滤器.任何人都可以给我一些关于如何修改模型以使用并行卷积层的提示.

谢谢

neural-network conv-neural-network keras keras-layer

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

如何计算CNN中网络的FLOP

我想设计一个卷积神经网络,占用GPU资源不超过Alexnet.我想用FLOP来测量它但我不知道如何计算它.有什么工具可以做到吗?

neural-network deep-learning caffe conv-neural-network

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

Facenet在线三联体生成

文章在这里提到了一个巧妙的方法来生成卷积神经网络三胞胎(以产生面嵌入物).

对于具有n个图像的小批量,仅使用半硬三元组进行学习(包含半硬阴性的三元组,其是与锚图像足够接近的负像).

  1. 如何创建训练集?批处理包含什么?

在我们的实验中,我们对训练数据进行采样,使得每个小批量的每个身份选择大约40个面.另外,随机抽样的负面被添加到每个小批量.

我做了什么

我在Wild数据集中使用Labeled Faces进行训练(13233个图像,5749个人,1680个人有两个或更多图像,每批我选择一个锚点,一些正面(意味着我只能使用1680个批次,因为我需要更多)比一个人的一个图像)和负面 - 随机选择的其他人的图像.

我的训练集有些问题.迷你批次是否应包含更多锚点?

我们不是挑选最难的阳性,而是在小批量中使用所有锚定阳性对,同时仍然选择硬阴性

  1. 在线三联体生成?怎么做?(欢迎提供技术细节)

在线生成三元组.这可以通过从小批量中选择硬正/负样本来完成.

要选择半硬阴性,我需要计算三胞胎的嵌入.所以我需要通过三重神经网络进行传递,并比较嵌入.然后,我需要使用硬三元组来计算损失函数.这就是我认为我必须做的事情.

我使用三个具有共享参数的卷积神经网络(四个具有最大池和一个完全连接层的卷积层).我还没有使用在线三联体生成,因为我无法理解它是如何完成的.它导致精度不超过70%.

machine-learning neural-network conv-neural-network

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

在Keras合并2个连续模型

我试图在keras中合并2个连续模型.这是代码:

model1 = Sequential(layers=[
    # input layers and convolutional layers
    Conv1D(128, kernel_size=12, strides=4, padding='valid', activation='relu', input_shape=input_shape),
    MaxPooling1D(pool_size=6),
    Conv1D(256, kernel_size=12, strides=4, padding='valid', activation='relu'),
    MaxPooling1D(pool_size=6),
    Dropout(.5),

])

model2 = Sequential(layers=[
    # input layers and convolutional layers
    Conv1D(128, kernel_size=20, strides=5, padding='valid', activation='relu', input_shape=input_shape),
    MaxPooling1D(pool_size=5),
    Conv1D(256, kernel_size=20, strides=5, padding='valid', activation='relu'),
    MaxPooling1D(pool_size=5),
    Dropout(.5),

])

model = merge([model1, model2], mode = 'sum')
Flatten(),
Dense(256, activation='relu'),
Dropout(.5),
Dense(128, activation='relu'),
Dropout(.35),
# output layer
Dense(5, activation='softmax')
return model
Run Code Online (Sandbox Code Playgroud)

这是错误日志:

文件"/nics/d/home/dsawant/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py",线路392,在is_keras_tensor提高ValueError异常("意外地发现类型的实例' + str(type(x)) + '." ValueError异常:意外地发现了一个类型的实例<class …

python machine-learning neural-network conv-neural-network keras

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

运行Adam Optimizer

我试图运行一个AdamOptimizer进行一步训练,不成功.

optimizer = tf.train.AdamOptimizer(learning_rate)
init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    sess.run(optimizer.minimize(cost), feed_dict={X:X_data, Y: Y_data})
Run Code Online (Sandbox Code Playgroud)

控制台吐出一个难看的错误:

FailedPreconditionError (see above for traceback): Attempting to use uninitialized value beta1_power
 [[Node: beta1_power/read = Identity[T=DT_FLOAT, _class=["loc:@W1"], _device="/job:localhost/replica:0/task:0/cpu:0"](beta1_power)]]
Run Code Online (Sandbox Code Playgroud)

在代码中,cost是一个明确定义的函数,使用两个参数X,Y(分别为NN和训练标签的条目)实现conv NN加上后勤丢失函数

关于什么可能出错的任何想法?

python conv-neural-network tensorflow

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

RuntimeError:给定 groups=1,权重大小为 [32, 3, 16, 16, 16],预期输入 [100, 16, 16, 16, 3] 有 3 个通道,但得到了 16 个通道

RuntimeError:给定 groups=1,权重大小为 [32, 3, 16, 16, 16],预期输入 [100, 16, 16, 16, 3] 有 3 个通道,但得到了 16 个通道

这是我认为问题所在的代码部分。

def __init__(self):
        super(Lightning_CNNModel, self).__init__()

        self.conv_layer1 = self._conv_layer_set(3, 32)
        self.conv_layer2 = self._conv_layer_set(32, 64)
        self.fc1 = nn.Linear(2**3*64, 128)
        self.fc2 = nn.Linear(128, 10)   # num_classes = 10
        self.relu = nn.LeakyReLU()
        self.batch=nn.BatchNorm1d(128)
        self.drop=nn.Dropout(p=0.15)

    def _conv_layer_set(self, in_c, out_c):
        conv_layer = nn.Sequential(
            nn.Conv3d(in_c, out_c, kernel_size=(3, 3, 3), padding=0),
            nn.LeakyReLU(),
            nn.MaxPool3d((2, 2, 2)),
        )

        return conv_layer



    def forward(self, x):
        out = self.conv_layer1(x)
        out = self.conv_layer2(out)
        out = out.view(out.size(0), -1) …
Run Code Online (Sandbox Code Playgroud)

python conv-neural-network pytorch pytorch-lightning

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

当 CPU 仅在 pytorch 中可用时,如何并行化一个批次的训练循环样本?

我想并行处理单个示例或一批示例(在我的情况下,我只有 cpus,我有多达 112 个)。我试过了,但我得到一个错误,即损失不能从单独的进程中产生梯度(这完全破坏了我的尝试)。我仍然想这样做,并且在多重处理发生后我可以做一个优化器步骤是必不可少的。我该如何解决?我做了一个完全独立的例子:


import torch
import torch.nn as nn
from torch.optim.lr_scheduler import StepLR
from torch.utils.data import Dataset, DataLoader

from torch.multiprocessing import Pool

class SimpleDataSet(Dataset):

    def __init__(self, Din, num_examples=23):
        self.x_dataset = [torch.randn(Din) for _ in range(num_examples)]
        # target function is x*x
        self.y_dataset = [x**2 for x in self.x_dataset]

    def __len__(self):
        return len(self.x_dataset)

    def __getitem__(self, idx):
        return self.x_dataset[idx], self.y_dataset[idx]

def get_loss(args):
    x, y, model = args
    y_pred = model(x)
    criterion = nn.MSELoss()
    loss = criterion(y_pred, y)
    return loss

def get_dataloader(D, num_workers, …
Run Code Online (Sandbox Code Playgroud)

machine-learning multiprocessing deep-learning conv-neural-network pytorch

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