深度学习 - 卷积神经网络,并与Python特征提取

卷积神经网络(或回旋网)的生物激发的MLP的变体,它们具有不同的种类的层,并且每个层不同工作比通常的MLP层不同。如果您有兴趣了解更多关于ConvNets,好的当然是CS231n - 卷积神经Newtorks从视觉上识别。cnn的架构如下图所示:

有规律的神经网络。
有规律的神经网络(从CS231n网站)。
回旋网络架构(来自CS231n网站)。
回旋网络架构(来自CS231n网站)。

正如你所看到的,ConvNets可与三维体积和这些3D体积的转换。我不会在这个岗位重复整个CS231n教程,所以如果你真的有兴趣,请花时间,然后再继续阅读。

意大利千层面和nolearn

我非常喜欢使用的用于深度学习的Python包之一是烤宽面条nolearn。千层面是基于Theano的,所以GPU加速将会有很大的不同,他们的声明式方法对于神经网络的创建是非常有用的。nolearn libary是一个关于神经网络包(包括千层面)的工具集合,它可以在创建神经网络架构、检查层等过程中帮助我们很多。

我什么都在这个岗位展示,是如何建立一个简单的ConvNet架构与一些卷积和汇聚层。I’m also going to show how you can use a ConvNet to train a feature extractor and then use it to extract features before feeding them into different models like SVM, Logistic Regression, etc. Many people use pre-trained ConvNet models and then remove the last output layer to extract the features from ConvNets that were trained on ImageNet datasets. This is usually called transfer learning because you can use layers from other ConvNets as feature extractors for different problems, since the first layer filters of the ConvNets works as edge detectors, they can be used as general feature detectors for other problems.

加载MNIST数据集

MNIST数据集是数字分类的最传统的数据集之一。我们将使用它的一个腌版本的Python,但首先,让导入的包,我们将需要使用:

进口matplotlib进口matplotlib.pyplot作为PLT进口matplotlib.cm从进口的urllib进口urlretrieve cPickle的作为泡菜进口OS进口gzip的进口numpy的作为NP进口从lasagne.updates烤宽面条进口层theano进口烤宽面条厘米从nolearn.lasagne进口导入nesterov_momentum NeuralNet从sklearn.metrics nolearn.lasagne进口形象化导入classification_report从sklearn.metrics进口confusion_matrix

正如你所看到的,我们正在绘制一些图像导入matplotlib,一些原生的Python模块下载MNIST数据集,numpy的,theano,烤宽面条,nolearn和模型评估一些scikit学习功能。

在那之后,我们定义MNIST加载函数(这是相当的意大利千层面教程中使用的相同的功能):

def load_dataset(): url = 'http://deeplearning.net/data/mnist/mnist.pkl.gz' filename = 'mnist.pkl。如果没有os.path.exists(文件名):print("下载MNIST数据集…")urlretrieve(url,文件名)与gzip。打开(文件名'rb')作为f: data = picklet .load(f) X_train, y_train = data[0] X_val, y_val = data[1] X_test, y_test = data[2] X_train = X_train。重塑((- 1,1,28,28))X_val = X_val。重塑((- 1,1,28,28))X_test = X_test。重新定义(-1,1,28,28))y_train = y_train.astype(n .uint8) y_val = y_var .astype(n .uint8) y_test = y_test.astype(n .uint8

正如你所看到的,我们正在下载MNIST腌制数据集,然后拆开包装成三个不同的数据集:训练,验证和测试。之后,我们重塑图像内容到他们以后准备输入到千层面输入层并且我们也转换numpy的阵列类型UINT8由于GPU / theano数据类型的限制。

在那之后,我们已经准备好装载MNIST数据集并检查:

X_train,y_train,X_val,y_val,X_test,y_test = load_dataset()plt.imshow(X_train [0] [0],CMAP = cm.binary)

此代码以上将输出以下图像(我使用IPython的笔记本):

一个数字MNIST(5中的情况下)的一个例子。
一个数字MNIST(5中的情况下)的一个例子。

卷积网络架构和培训

现在我们可以定义我们的ConvNet架构,然后使用GPU/CPU(我有一个非常便宜的GPU,但它很有帮助)训练它:亚洲金博宝

net1 = NeuralNet(层=[(“输入”,layers.InputLayer), (‘conv2d1’, layers.Conv2DLayer), (‘maxpool1’, layers.MaxPool2DLayer), (‘conv2d2’, layers.Conv2DLayer), (‘maxpool2’, layers.MaxPool2DLayer), (‘dropout1’, layers.DropoutLayer)(“密集”,layers.DenseLayer), (‘dropout2’, layers.DropoutLayer)(“输出”,layers.DenseLayer)], #输入层input_shape =(28)没有,1,28日,#层conv2d1 conv2d1_num_filters = 32, conv2d1_filter_size = (5,5), conv2d1_nonlinearity = lasagne.nonlinearities。整流,conv2d1_W=lasagne.init.GlorotUniform(), # layer maxpool1 maxpool1_pool_size=(2,2), # layer conv2d2 conv2d2_num_filters=32, conv2d2_filter_size=(5,5), conv2d2_nonlinear =lasagne. nonities。maxpool2_pool_size=(2,2), dropout1 dropout1_p=0.5, # dense_num_units=256, dense_nonlinear =lasagn . nonities。# dropout2_p=0.5, #输出输出非线性=lasagn .非线性。优化方法params update=nesterov_momentum, update_learning_rate=0.01, update_momentum=0.9, max_epochs=10, verbose=1,)训练网络nn = net1。fit (X_train y_train)

正如你所看到的,在参数我们用层名/类型定义元组字典,然后定义这些层的参数。我们的架构是使用两个带有池的卷积层,然后是一个完全连接层(稠密层)和输出层。在一些层之间也有遗漏,遗漏层是一个正则化器,随机设置输入值为零,以避免过拟合(见下图)。

Dropout图层效果(来自CS231n网站)。
Dropout图层效果(来自CS231n网站)。

调用后培养方法,nolearn包将显示学习过程的状态,在我的机器与我简陋的GPU我得到的结果如下:

#神经网络160362个可学习参数##层信息#名称大小--- -------- -------- 0输入1x28x28 1 conv2d1 32x24x24 2 maxpool1 32x12x12 3 conv2d2 32x8x8 4 maxpool2 32x4x4 5 dropout132x4x4 6密256 7 dropout2 256 8输出10划时代列车损失有效损失火车/ VAL有效ACC DUR ------- ------------ -----------  ----------- --------- --- 1 0.85204 0.16707 5.09977 0.95174 33.71s 2 0.27571 0.10732 2.56896 0.96825 3 33.34s 0.20262 0.08567 2.36524 0.97488 33.51s 4 0.16551 0.07695 2.150810.97705 33.50s 5 0.14173 0.06803 2.08322 0.98061 34.38s 6 0.12519 0.06067 2.06352 0.98239 34.02s 7 0.11077 0.05532 2.00254 0.98427 33.78s 8 0.10497 0.05771 1.81898 0.98248 34.17s 9 0.09881 0.05159 1.91509 0.98407 10 33.80s 0.09264 0.04958 1.86864 0.98526 33.40s

正如您所看到的,最终的精度为0.98526,对于10 epoch的训练来说,这是一个相当好的性能。

预测和混淆矩阵

现在我们可以使用模型来预测整个测试数据集:

仅仅= net1.predict (X_test)

而且我们还可以绘制一个混淆矩阵检查神经网络分类的性能:

厘米= confusion_matrix(y_test,preds)plt.matshow(厘米)plt.title( '混淆矩阵')plt.colorbar()plt.ylabel( '真标签')plt.xlabel( '预测标签')plt.show()

上面的代码将绘制以下混淆矩阵:

混淆矩阵
混淆矩阵

正如你所看到的,对角线,其中分类更加密集,显示我们分类的良好性能。

过滤器的可视化

我们也可以可视化的32个过滤器从第一个卷积层:

visualize.plot_conv_weights (net1.layers_ [' conv2d1 '])

上面的代码将绘制下面的过滤器:

第一层5x5x32滤波器。
第一层5x5x32滤波器。

正如你所看到的,nolearnplot_conv_weights地块所有过滤器呈现我们指定的层。

Theano层函数和特征提取

现在是时候创建theano编译函数了,它将输入数据前馈到架构中,直到您感兴趣的层。我将为输出层以及在输出层之前的稠密层获取函数:

dense_layer = layers.get_output(net1.layers _ [ '密'],确定性=真)output_layer = layers.get_output(net1.layers _ [ '输出'],确定性=真)input_var = net1.layers _ [ '输入']。input_varf_output = theano.function([input_var],output_layer)f_dense = theano.function([input_var],dense_layer)

如您所见,我们现在调用了两个theano函数f_outputf_dense(用于输出和致密层)。请注意,在这里为了让大家层使用称为额外的参数“确定的“,这是为了避免影响我们的前馈通辍学层。

现在,我们可以示例实例转换到输入格式,然后将其馈送到用于输出层theano功能:

实例= X_test [0] [无,:,:]%timeit -n 500 f_output(实例)500个循环,最好的3:858微秒每循环

可以看到,f_output函数平均接受858个线程。我们还可以绘制实例的输出层激活:

PRED = f_output(实例)N = pred.shape [1] plt.bar(范围(N),pred.ravel())

上面的代码将创建以下情节:

输出层激活。
输出层激活。

如您所见,这个数字被识别为数字7。事实上,您可以创建theano函数的任何层网络是非常有用的,因为您可以创建一个函数(就像我们之前做的)得到致密层的激活(前一个输出层),您可以使用这些激活特亚洲金博宝性和使用你的神经网络分类器,但不如一个特性提取器。现在让我们画出密集层的256个单位激活:

PRED = f_dense(实例)N = pred.shape [1] plt.bar(范围(N),pred.ravel())

上面的代码将创建下面的情节如下:

致密层激活。
致密层激活。

现在,您可以使用这些256个激活的输出功能,像Logistic回归或SVM线性分类。

希望你喜欢这个教程!

引用这篇文章为:Christian S. Perone,“深度学习-卷积神经网络和特征提取与Python”亚洲金博宝未知领域,19/08/2015,//www.cpetem.com/2015/08/convolutional-neural-networks-and-feature-extraction-with-python/

关于“深度学习-卷积神经网络与Python特征提取”的56种思考

  1. 感谢您的文章!这是非常有用的亚洲金博宝 - 尤其是关于绘制卷积层位。

    旁白:泡椒可以运行任意代码,所以这将是很好,以避免可能的话。我的理解使得虽然:)教程更容易。

    1. 嗨,

      我是千层面的新手,并开始实施CNNs。我在存储训练好的网络参数时遇到了一个问题。具体来说,我正在开发ImageNet。
      当我做:
      NN = net1.fit(X_train,y_train)

      然后尝试通过pickle.dump()保存“nn”,我想我用完了内存。

      您能否给我建议的方式来存储这么大尺寸的意大利千层面的对象。我试着用JASON和HD5,但他们不支持千层面的对象。

      谢谢,
      Avisek

      1. ImageNet足够大,可以用最大的递归错误崩溃Python的pickle。因此,在我们保存它之前,你必须增加Python的递归限制:

        导入系统
        sys.setrecursionlimit(10000)

        X,Y = load2d()
        net6.fit(X,Y)

        将cPickle作为pickle导入
        具有开放(“net6.pickle”,“WB”)为f:
        泡菜。转储(net6 f (1)

  2. 谢谢你写这篇文章。我发现这对快速学习千层亚洲金博宝面和nolearn非常有用。

    接近年底,你说说CNN的最后一层插入到一个SVM。类似于什么是卷积内核网络讨论的方法:http://yann.lecun.com/exdb/publis/pdf/huang-lecun-06.pdf吗?我很想看看亚洲金博宝它的实现。

    我发现删除第一个dropout层可以提高测试的准确性。

  3. 谢谢你写这篇文章。
    而且,我有一些错误。
    例如,1- output_shape = layer.get_output_shape()
    AttributeError的:“DenseLayer”对象有没有属性“get_output_shape”
    2-从lasagne.objectives进口MSE
    不能导入名称mse

  4. 嘿,
    文章是针对初学者真的很好。在数据集本身的预测是准确的。但是,当我欲给那些不属于数据集图像,它给尺寸误差。我实现了尺寸,所以我大小重新调整为28,28信道不是为输入层的匹配,但仍然是产生相同的错误。
    这就是误差。

    输入错误:(' theano函数名称错误的输入参数' /home/raza/workspace/Test/Convnet/demoTest。py:166“在指数0(基于0)','错误的维度数:预期4,得到3与形状(28,28,4)。

  5. 有谁收到有关找不到全局变量错误ignore_bmax_pool_2d()和秩序?

    (self,传入,pool_size, stride=None, pad=(0,0),
    ignore_border = True, * * kwargs):
    超(MaxPool2DLayer,个体经营).__的init __(来料,
    pool_size,
    步幅,
    垫,
    ignore_bmax_pool_2d()命令,
    模式=”最大值”,
    ** kwargs)

    其次,TypeError: max_pool_2d()在同一个pool.py文件中获得了一个意外的关键字参数“mode”

    如果有解决办法,请告诉我。

  6. 你好,
    首先,感谢你的文章,这是非常有帮助的。亚洲金博宝
    但是,我想知道在运行代码“MNIST Dataset Loading”之后,我获得了一个GZ文件是否正常。因此我解压缩它,然后我获得了一个PKL文件,我不知道如何打开这个文件。

    感谢您的帮助

  7. 感谢你为这个伟大的介绍convnets。帮了我很多。

    我有关于你的Y_变量一个问题。我预期它们被表示为oneHot变量(如你有每一个表示一个数字10个输出节点)。其中,例如,一个2转换成[0,0,1.0,0,0,0,0,0,0,0]。
    但是你跳过这一步和网络仍然有效得体。这怎么可能?是否有某种隐式转换正在进行的背景是什么?

    1. 我自己找到了解决办法。我的示例代码混合了本教程的代码和自己的代码,其中抱怨了y_train变量的维数。关闭回归标志后,网络按预期执行。

  8. 嗨,我啾啾你昨天你告诉我在这里解释一下这个问题。
    我使用Ubuntu 14.04 LTS,巨蟒2.7.11 |蟒蛇2.4.1(64位)和我使用的Spyder。所有的图书馆,我使用的,已更新并升级到最新版本。例如,我已经改变了从lasagne.objectives进口MSE从lasagne.objectives导入squared_error行
    我遇到的错误是:
    1)从进口nolearn.lasagne形象化
    行给出了错误:
    回溯(最近一次呼叫):
    文件" ",第1行,在
    不能导入名称可视化
    nn = net1。fit (X_train y_train)

    行给出了错误:

    回溯(最近一次呼叫):
    文件" ",第1行,在
    文件“/ usr /本地/ lib / python2.7 / dist-packages / nolearn /烤宽面条。,第140行,适合
    self._print_layer_info(self.get_all_layers())
    文件“/ usr /本地/ lib / python2.7 / dist-packages / nolearn /烤宽面条。在_print_layer_info中,第376行
    output_shape = layer.get_output_shape()
    AttributeError的:“DenseLayer”对象有没有属性“get_output_shape”

    3)preds = net1.predict(X_test)

    行给出了错误:

    回溯(最近一次呼叫):
    文件" ",第1行,在
    文件“/ usr /本地/ lib / python2.7 / dist-packages / nolearn /烤宽面条。py ",第249行,在预测
    y_pred = np.argmax(self.predict_proba(X), axis=1)
    文件“/ usr /本地/ lib / python2.7 / dist-packages / nolearn /烤宽面条。在predict_proba中,第242行
    probas.append (self.predict_iter_ (Xb))
    AttributeError的:“NeuralNet”对象有没有属性“predict_iter_”

    4)dense_layer = layers.get_output(net1.layers _ [“密”],确定性=真)
    output_layer = layers.get_output(net1.layers _ [“输出”],确定性=真)
    input_var = net1.layers _ [“输入”]。input_var

    dense_layer = layers.get_output(net1.layers _ [“密”],确定性=真)
    output_layer = layers.get_output(net1.layers _ [“输出”],确定性=真)
    input_var = net1.layers _ [“输入”]。input_var

    这6行给出同样的错误:

    回溯(最近一次呼叫):
    文件" ",第1行,在
    AttributeError:“NeuralNet”对象没有属性“layers_”

    我焦急地等待着您的帮助。谢谢你的时间。

    你的真挚的

  9. 嘿,我想以可视化卷积层的输出。我已经使用了命令visualize.plot_conv_weights(),但它不显示任何。有人可以帮我是什么?

    1. 我也想知道:
      对每一层的偏见亚洲金博宝
      输入文件的datetype
      的datalose最佳的减肥(可用于使用)

  10. 好人。谢谢你的伟大的教程。我是新的CNN,并试图在Python实现。我有一个困难时期来配置我的GPU的OpenCL带。但是,这是一个其他纪录。你知道一些参考,以创建像MNIST的数据库。我有一些图片,以创建一个数据集,但我在这个任务中丢失。提前致谢

    1. 使用lmdb数据库。如果您知道如何使用caffe深度学习库,使用该数据库将更加容易。您还必须破解如何应用lmdb数据库与千层面。一个简单的谷歌搜索将让您开始

  11. 我想做的使用MNIST位训练有素的数字手写识别。

    通常,人们从图像中提取HOG特征,然后使用SVM进行训练。在预测时间内,从真实图像中提取HOG特征进行预测。

    但是,我想用你在博客中提到的卷积网络做同样的事情。98.5%的精确度是惊人的,因为相对于其他复杂和计算密集型network.I我目前通过序列化的泡菜“NET1”对象计算是那么激烈。我不知道是什么样的功能,从实像提取物和饲料它的分类作出预测。

    1. 帕索,我试着给你发邮件,但它总是返回一个错误,说你的邮件被阻止。除了以@asu.edu结尾的邮件,你还有其他邮件吗?你可以在这里回答,我会删除评论后看到它,以避免垃圾邮件到你的邮箱。

      1. 主席先生,我想使实时目标跟踪和机器在物体识别学习过无人机,我怎么能实现它。

  12. 我想使用从CNN代码中提取的特征并用SVM分类器来训练它就像你在最后提到的那样。我不理解的是,美联储应该如何对待分类者。你能帮帮我吗?

  13. 嗨,
    非常感谢您的文章。亚洲金博宝
    我有一个简单的问题要问。我想用百分比误差扰动权重然后我想用网络在相同的数据上使用扰动权重来比较结果。
    有人愿意帮忙吗?
    顺便说一句,我对python和所有这些库都很陌生。

  14. 感谢写这篇文章。我真的很喜欢在那里你暗示了如何使用Theano把一个SVM了深刻网络(VGG16)的顶部。医学图像是什么,我要尝试这种技术。有我在医学图像数据集亚洲金博宝的例子非常少(约300)。我觉得你的建议将有很大的帮助吧。

  15. 非常感谢你为你的教程。我一直在想你的教程,我的数据集(数字和字母)为82800个实例,但是,当我尝试使用特征提取的f_dense,这是给我一些错误如下:

    如果我运行
    PRED = f_dense(输入)

    的MemoryError回溯(最近通话最后一个)
    在()
    - > 1 PRED = f_dense(X_test)

    /电脑/ Python-DL / py-env /地方/ lib / python2.7 /网站/ theano /编译/ function_module。剩余call__中的pyc (self, args, kwargs)
    869节点= self.fn.nodes [self.fn.position_of_error]
    870年铛铛,
    - > 871 storage_map = GETATTR(self.fn,“storage_map”,无))
    872年:
    旧式链接器会有自己的异常

    /电脑/ Python-DL / py-env /地方/ lib / python2.7 /网站/ theano / gof /链接。在raise_with_op中的pyc (node, thunk, exc_info, storage_map)
    在这种情况下,会出现很长的错误信息。
    313年通过
    - > 314再加注(exc_type,exc_value,exc_trace)
    315
    316

    /电脑/ Python-DL / py-env /地方/ lib / python2.7 /网站/ theano /编译/ function_module。剩余call__中的pyc (self, args, kwargs)
    时间()
    858试:
    - > 859输出= self.fn()
    860年除了例外:
    861如果hasattr(自我。fn,“position_of_error”):

    的MemoryError:错误分配368640000个字节设备存储器(CNMEM_STATUS_OUT_OF_MEMORY)的。
    应用导致错误的节点:GpuAllocEmpty(Shape_i{0})。0,Shape_i {0}。0,Elemwise{Composite{((((i0 + i1) – i2) // i3) + i3)}}[(0, 0)].0, Elemwise{Composite{((((i0 + i1) – i2) // i3) + i3)}}[(0, 0)].0)
    Toposort指数:30
    输入类型:[TensorType(int64类型,标量),TensorType(int64类型,标量),TensorType(int64类型,标量),TensorType(int64类型,标量)]
    输入形状:[()、()、()]
    输入步幅:[(),(),(),()]
    输入值:[array(5000), array(32), array(24), array(24)]
    Outputs clients: [[GpuDnnConv{algo=’small’, inplace=True}(GpuContiguous.0, GpuContiguous.0, GpuAllocEmpty.0, GpuDnnConvDesc{border_mode=’valid’, subsample=(1, 1), conv_mode=’conv’, precision=’float32′}.0, Constant{1.0}, Constant{0.0})]]

    提示:禁用可以给你创建这个节点时的背跟踪最Theano优化重新运行。这可以通过设置Theano标志“优化= fast_compile”来完成。如果不起作用,Theano优化可以用“优化=无”被禁用。
    提示:使用Theano标志的这个debugprint和存储地图足迹“exception_verbosity =高”申请节点。

    请帮助我。

  16. 当我运行这个程序我是刚开的错误

    回溯(最近一次呼叫):
    文件“d:\蟒蛇\ LIB \站点包\ PythonWin的\ pywin \框架\ scriptutils.py”,线路326,在了RunScript
    exec (codeObject __main__.__dict__)
    文件“d:\蟒蛇\ LIB \ idlelib \程序\ p1.py”,行79,在
    NN = net1.fit(X_train,y_train)
    NameError:名字“X_train”没有定义

    请给我您的建议

  17. 你好,

    谢谢你的文章。我想训练我创建的图像数据集。我将图像转换为np数组,并改变了网络的参数以反映可接受的输入层的大小(我的情况是100×100幅图像)。

    但我得到的错误,如IndexError:指标10是出界对轴0,大小10
    应用导致错误的节点:CrossentropySoftmaxArgmax1HotWithBias(Dot22.0,输出)。b, y_batch)

    关于如何构建这个数据集,有什么教程我可以学习吗?

    谢谢

  18. 嗨基督徒,

    感谢您的精彩文章。我是想你的代码。不过,虽然“训练模式”,它的运行永恒。我没有变,我可以调试任何错误。能否请你有什么建议可以是问题?我使用的是Windows 10与4 GB的RAM。

    问候,
    Arijit

      1. 嘿Vibhor,

        我遇到了和阿里吉特一样的问题
        看来RAM被刷爆了,无论有多少可用(我有16GB),这是第一输出不错,但随后该计划的斗争找到RAM需要(因为它已经被使用最多的吗?)

        版本的软件包:
        nolearn = 0.6 py27_0
        千层面= 0.1 py27_0
        theano = 0.9 py27_0

  19. 晚上好,
    我试图运行,它导致错误:

    导入错误:无法导入名称“urlretrieve”

    有人能帮我吗?

  20. 嗨基督徒,

    如何指定NueralNet功能激活功能“RELU”?

    谢谢,
    湿婆

  21. 你好。
    我不明白为什么
    - --- ---
    0输入1x28x28
    1 conv2d1 32x24x24 - >为什么24×24?

    问候

    1. ESO ES POR阙aplico filtro德5×5。铝aplicar EL filtro SE pierden 2 pixeles alrededor德尔伯德EN CADA伯德。Entonces烯总本身pierden 4个pixeles - > 28 - > 24 - >拉斯imagenes quedan DE 24×24。32 ES LA profundidad(LA cantidad去筛选现在阙tenes)

  22. 你好!感谢您的教程!当我试图遵循它时,我遇到了一些我无法解决的问题。特别是当我试图从nolearn引进NeuralNet的时候。千层面我犯了一大堆错误:

    文件" ",第1行,在
    从nolearn.lasagne进口NeuralNet
    文件“/应用/ PyCharm CE.app/Contents/helpers/pydev/_pydev_bundle/pydev_import_hook.py”,第21行,在do_import
    模块=自我。_system_import(名称、* args * * kwargs)
    文件“/用户/ 2128506 mj /蟒蛇/ env / py27 / lib / python2.7 /网站/ nolearn /烤宽面条/ __init__。,第1行,在
    从.handlers进口(
    文件“/应用/ PyCharm CE.app/Contents/helpers/pydev/_pydev_bundle/pydev_import_hook.py”,第21行,在do_import
    模块=自我。_system_import(名称、* args * * kwargs)
    文件“/用户/ 2128506 mj /蟒蛇/ env / py27 / lib / python2.7 /网站/ nolearn /烤宽面条/处理程序。,第12行,in
    从.util进口ANSI
    文件“/应用/ PyCharm CE.app/Contents/helpers/pydev/_pydev_bundle/pydev_import_hook.py”,第21行,在do_import
    模块=自我。_system_import(名称、* args * * kwargs)
    文件“/用户/ 2128506 mj /蟒蛇/ env / py27 / lib / python2.7 /网站/ nolearn /烤宽面条/跑龙套。,第13行,在
    从lasagne.layers.cuda_convnet进口Conv2DCCLayer
    文件“/应用/ PyCharm CE.app/Contents/helpers/pydev/_pydev_bundle/pydev_import_hook.py”,第21行,在do_import
    模块=自我。_system_import(名称、* args * * kwargs)
    文件“/Users/2128506mj/anaconda/envs/py27/lib/python2.7/site-packages/lasagne/layers/cuda_convnet.py”,第16行,在
    从theano.sandbox.cuda.basic_ops进口gpu_contiguous
    文件“/应用/ PyCharm CE.app/Contents/helpers/pydev/_pydev_bundle/pydev_import_hook.py”,第21行,在do_import
    模块=自我。_system_import(名称、* args * * kwargs)
    文件“/Users/2128506mj/anaconda/envs/py27/lib/python2.7/site-packages/theano/sandbox/cuda/__init__.py”,第6行,在
    “你正在导入theano.sandbox.cuda。这是老GPU后台和”
    SkipTest:你正在进口那个家伙,沙盒,cuda。这是旧的GPU后端,并从Theano删除。使用Theano 0.9来使用它。更好的是,过渡到新的GPU后端!看到https://金宝博游戏网址github.com/Theano/Theano/wiki/Converting-to-the-new-gpu-back-end%28gpuarray%29

    我有一个的MacBook Pro与OS X 10.10。它具有英特尔图形芯片,所以我还没有安装CUDA。其他功能:使用Python 2.7.13虚拟环境|蟒蛇4.4.0(x86_64的),PyCharm社区版2017.2
    我尝试重新安装和更新Theano和千层面,以及pygpu,我现在拥有的最新版本(千层面(0.2.dev1), Theano (0.10.0.dev1),pygpu (0.6.8))

    我读过这可能是一个问题Theano,所以我配置Theano来使用CPU和force_device =真,但它并没有帮助。这可能是一个千层面的问题,因为它使theano.sandbox.cuda电话。

    这是可以配置的设置,而无需CUDA运行。我究竟该怎么做?任何意见非常感谢!

    干杯,
    伊凡

  23. 海基督教,

    谢谢你的文章是我有很大帮助。我有一个问题,它是视频特征提取工作?如果没有这部分,我应该改变?谢谢。

    致以最亲切的问候

    Manggala

  24. 能否请你列出软件包的版本与运行的代码没有任何错误。
    我有很多错误:
    千层面:0.1
    Theano:1.0.1
    由于池的变化
    谢谢

  25. 有没有一种方法来确定培训或测试编写的深度学习模型中使用theano和烤宽面条所需的内存

  26. 嗨基督徒,
    你做得很好。但由于Theano已经完全贬值,这导致了许多问题,以适应Nolearn和千层面。
    难道你能想出用Tensorflow代替的代码版本?
    干杯,
    布丽姬特

发表评论

您的电子邮件地址将不会被公布。

本网站使用的Akismet,以减少垃圾邮件。了解如何处理您的评论数据