python函数运算卷积 python的卷积函数

使用python在GPU上构建和训练卷积神经网络 我将对代码进行补充演练,以构建在数据集上训练的任何类型的图像分类器 。在这个例子中,我将使用花卉数据集,其中包括102种不同类型的花 。需要数据集和代码都可以私信我 。
Pytorch是机器学习和Python上的免费软件包,非常易于使用 。语法模拟numpy,因此,如果你在python中有一些科学计算经验,那么会相当有用的 。只需几行代码,就可以下载预先训练的数据集,使用定义的变换对图像进行标准化,然后运行训练 。
创建和扩充数据集
为了增加数据集 , 我使用'google_images_download'API 从互联网上下载了相关图像 。显然,您可以使用此API不仅可以扩充现有数据集,还可以从头开始创建自己的数据集 。
确保从图像中挑选出异常值(损坏的文件或偶然出现的无关图像) 。
图像标准化
为了使图像具有相同的大小和像素变化 , 可以使用pytorch的transfors模块:
转移学习
从头开始训练的模型可能不是最明智的选择,因为有许多网络可用于各种数据集 。简单地说,像edge-和其他简单形状检测器等低级特征对于不同的模型是相似的,即使clasificators是针对不同目的进行训练的 。在本项目中,我使用了一个预训练网络Resnet152 , 只有最后一个完全连接的层重新用于新任务,即使这样也会产生相当好的效果 。
在这里,我将除最后一层之外的所有层都设置为具有固定权重(requires_grad = False),因此只有最后层中的参数将通过梯度下降进行更新 。
训练模型
下面介绍一下进行训练的函数:
如何获得GPU?
当然,对CPU的训练太慢了 。根据我自己的经验,在GPU仅需要一个小时就可以完成12次训练周期 , 但是在CPU上相同数量的训练周期可能需要花费大约15个小时 。
如果您没有本地可用的GPU,则可以考虑使用云GPU 。为了加速CNN的训练,我使用了floydhub()上提供的云GPU。
这项服务非常指的使用:总有很好的文档和大量的提示,所以你会很清楚的知道下一步需要如何去做 。在floydhub上对于使用GPU的收费也是可以接受的 。
首先,需要将数据集上传到服务器
然后,需要创建项目 。需要在计算机上安装floydhub客户端,将数据集上载到其网站并在终端中运行以下命令:
其中'username'是您的登录名,'i'是数据集所在的文件夹 。
这样子在训练网络时就会很轻松了
结果和改进想法
得到的模型在数据集上训练了1.5小时,并在验证数据集上达到了95%的准确度 。
怎样用python构建一个卷积神经网络?【python函数运算卷积 python的卷积函数】用keras框架较为方便
首先安装anaconda,然后通过pip安装keras
1、#导入各种用到的模块组件
from __future__ import absolute_import
from __future__ import print_function
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation, Flatten
from keras.layers.advanced_activations import PReLU
from keras.layers.convolutional import Convolution2D, MaxPooling2D
from keras.optimizers import SGD, Adadelta, Adagrad
from keras.utils import np_utils, generic_utils
from six.moves import range
from data import load_data
import random
import numpy as np
np.random.seed(1024)# for reproducibility
2、 。#打乱数据
index = [i for i in range(len(data))]
random.shuffle(index)
data = https://www.04ip.com/post/data[index]
label = label[index]
print(data.shape[0], ' samples')

推荐阅读