Tag: 深度学习

多层感知器(MLP)体系结构:select隐藏层的数量和隐藏层的大小的标准?

如果我们有10个特征向量,那么我们可以在input层有10个神经节点。如果我们有5个输出类,那么我们可以在输出层有5个节点。但是在MLP中select隐含层数的标准是多less? 1个隐藏层中的节点?

如何在张量stream中有效地应用梯度裁剪?

考虑到示例代码 。 我想知道如何在RNN上的这个networking上应用梯度剪切,在这种情况下可能出现梯度分解。 tf.clip_by_value(t, clip_value_min, clip_value_max, name=None) 这是一个可以使用的例子,但我在哪里介绍这个? 在RNN的def lstm_cell = rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0) # Split data because rnn cell needs a list of inputs for the RNN inner loop _X = tf.split(0, n_steps, _X) # n_steps tf.clip_by_value(_X, -1, 1, name=None) 但是,这是没有意义的,因为张量_X是input,而不是什么被裁剪的gradle生? 我必须为此定义我自己的优化器还是有一个更简单的选项?

Keras,如何获得每一层的输出?

我已经用CNN训练了一个二进制分类模型,这里是我的代码 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)) # (16, 16, 32) model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1])) model.add(Activation('relu')) model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1])) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=pool_size)) # (8, 8, 64) = (2048) model.add(Flatten()) model.add(Dense(1024)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(2)) # define a binary classification problem model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy']) model.fit(x_train, y_train, batch_size=batch_size, nb_epoch=nb_epoch, verbose=1, validation_data=(x_test, […]

如何以HDF5格式提供caffe多标签数据?

我想用一个向量标签的咖啡,而不是整数。 我查了一些答案,看来HDF5是一个更好的方法。 但是,然后我陷入了像这样的错误: outer_num_ * inner_num_ == bottom[1]->count() :34]检查失败: outer_num_ * inner_num_ == bottom[1]->count() (50与200)标签数量必须匹配预测数量; 例如,如果标签轴== 1且预测形状是(N,C,H,W),则标签计数(标签数量)必须是N*H*W ,其中整数值在{0,1,…, C-1}。 与HDF5创build为: f = h5py.File('train.h5', 'w') f.create_dataset('data', (1200, 128), dtype='f8') f.create_dataset('label', (1200, 4), dtype='f4') 我的networking是由以下产生的: def net(hdf5, batch_size): n = caffe.NetSpec() n.data, n.label = L.HDF5Data(batch_size=batch_size, source=hdf5, ntop=2) n.ip1 = L.InnerProduct(n.data, num_output=50, weight_filler=dict(type='xavier')) n.relu1 = L.ReLU(n.ip1, in_place=True) n.ip2 […]

:检查失败:检查失败:hdf_blobs_ – > shape(0)== num(200 vs. 6000)

我有火车和标签数据data.mat。 (我有200个具有6000个特征的训练数据,标签是保存在data.mat中的(-1,+1))。 我正在尝试在hdf5中转换我的数据并使用以下命令运行Caffe: load data.mat hdf5write('my_data.h5', '/new_train_x', single( reshape(new_train_x,[200, 6000, 1, 1]) ) ); hdf5write('my_data.h5', '/label_train', single( reshape(label_train,[200, 1, 1, 1]) ), 'WriteMode', 'append' ); 而我的layer.prototxt(只是数据层)是: layer { type: "HDF5Data" name: "data" top: "new_train_x" # note: same name as in HDF5 top: "label_train" # hdf5_data_param { source: "/path/to/list/file.txt" batch_size: 20 } include { phase: TRAIN […]

InfogainLoss图层

我希望在我的模型中使用InfogainLosstypes的丢失图层。 但是我很难正确定义它。 有没有关于使用INFOGAIN_LOSS图层的任何教程/例子? 该层的input,类概率,是否为SOFTMAX层的输出,还是足以input完全连接层的“顶层”? INFOGAIN_LOSS需要三个input:类概率,标签和matrixH matrixH可以作为层参数infogain_loss_param { source: "fiename" } 。 假设我有一个python脚本,用numpy.array dtype='f4' (其中L是模型中的标签数(L,L)计算H为numpy.array的形状(L,L) )。 我怎样才能将我的numpy.array转换成可以作为infogain_loss_param { source }给模型的binproto文件? 假设我想把H作为第三个input(底部)提供给损失层(而不是模型参数)。 我该怎么做? 我是否定义了一个“顶”是H的新数据层? 如果是这样的话,每次训练迭代都不会增加这个层的数据,就像训练数据增加一样? 我如何定义多个不相关的input“数据”层,caffe如何知道从批处理的训练/testing“数据”层中读取,而从H “数据”层知道只读取一次所有训练处理?

如何在caffe中训练/testing我自己的数据集?

我从Caffe开始,这个例子运行得很好。 我有火车和标签数据data.mat 。 (我有300个训练数据,有30个特征,标签是(-1, +1) ,保存在data.mat )。 但是,我不太明白如何使用caffe来实现我自己的数据集? 有没有一步一步教程可以教我? 非常感谢!!!! 任何意见将不胜感激!

convert_imageset.cpp指南

我对机器学习/ python / ubuntu比较新。 我有一套.jpg格式的图像,其中一半包含我想学习的function,一半没有。 我很难find一种方法将它们转换为所需的lmdb格式。 我有必要的文本input文件。 我的问题是任何人都可以提供如何在ubuntuterminal中使用convert_imageset.cpp一步一步的指导? 谢谢