- 博客(37)
- 资源 (5)
- 收藏
- 关注
原创 05_操作符重载与临时对象
一、操作符重载 —— 1、成员函数 thisthis指向调用者一)return by reference 语法分析传递者无需知道接收者是以 reference 形式接收二)class body 之外的各种定义(definitions)二、操作符重载 —— 2、非成员函数(无this)为了对付client的三种可能用法,这里对应开发三个函数三、临时对象(temp object) 1、下面这些函数绝不可 retu...
2022-05-29 19:14:12
196
原创 04_参数传递与返回值
一、常量成员函数(const members function)二、参数传递: pass by value vs. pass by reference(to const)三、返回值传递:return by value vs, return by reference(to const)四、友元(friend)C++ 通过private 让其具有封装性,friend打破了这种封装性一)相同 class 的各个 objects 互为 friends...
2022-05-29 16:41:02
176
原创 03_构造函数
一、inline(内联)函数二、访问级别(access level)三、构造函数(constructor)创建对象的时候,构造函数自然而然会被调用起来重载(OverLoading) —— 构造函数可以有很多个
2022-05-29 15:20:53
241
原创 02_头文件与类的声明
一、C Vs C++ (在数据与函数上角色的不同作比较)二、C++ 关于数据和函数三、Obeject Based(基于对象) vs. Object Oriented(面向对象)四、第一个C++程序
2022-05-08 11:10:39
1680
原创 01_C++编程简介
声明:原文章是繁体字,具体视频可在B站搜索看到。文章是一字一字敲出来的,朋友们可以加关注与点赞吗。有一说一,他是讲的真的不错的。一、应该具有的基础1、曾经学过某种面向过程的语言(Procedural Language)—— 比如C语言- 变量(Variables)- 类型(types)int, float, char, struct,,,- 作用域(scopes)- 循环(loops): while, for...
2022-05-08 01:32:32
130
原创 6.6 前向传播与反向传播
一、深度学习网络本质深度学习网络本质是一种表示或者说映射网络输入一张图片 ------》 是猫的概率这就神经网络做的事情二、前向传播与反向传播前向传播:输入一张图片 ------》 概率反向传播:计算这个概率与实际的差距,叫做损失或者误差误差将被反向传递给网络的每一层三、预训练网络我们使用了预训练网络的前向传播过程使用网络做出预测,就是在使用网络前向传播的过程1、为什么训练网络过程这么慢...
2022-04-04 00:28:53
454
原创 6.7 使用预训练网络 2.0 实现猫狗分类
keras内置经典网络实现covn_base = keras.applications.VGG16(weights='imagenet', include_top=False, input_shape=(200, 200, 3))covn_base.summary()batch_size=20def extract_features(dat
2022-04-04 00:28:42
150
原创 6.8 使用预训练网络 3.0 实现猫狗分类 --- 微调
微调所谓微调: 冻结模型库的底部的卷积层,共同训练新添加的分类器层和顶部部分卷积层。这允许我们“微调”基础模型中的高阶特征表示,以使它们与特定任务更相关。只有分类器已经训练好了,才能微调卷积基的顶部卷积层。如果有没有这样的话,刚开始的训练误差很大,微调之前这些卷积层学到的表示会被破坏掉微调步骤一、在预训练卷积基上添加自定义层二、冻结卷积基所有层三、训练添加的分类层四、解冻卷积基的一部分层在1.0版本基础上添加covn_base.trainable...
2022-04-04 00:28:31
270
原创 6.9 常见的预训练网络模型
一、可用的模型在ImageNet上预训练过的用于图像分类的模型:VGG16VGG19ResNet50InceptionV3InceptionResNetV2XceptionMobileNetMobileNetV2DenseNetNASNet二、Xception使用实例tf.keras.applications.xception.Xception(include_ top=True, weights= imagenet', input tensor=No...
2022-04-04 00:28:19
834
原创 6.10 输出层总结
回归问题 ------ 输出一个连续的值 --- 没有激活函数二分类问题 ------ 输出一个概率值 --- sigmoid激活多分类问题 ------ 输出N个值 --- softmax激活多标签问题
2022-04-04 00:28:07
424
原创 6.11 批标准化
一、什么是标准化传统机器学习中标准化也叫做归一化,一般是将数据映射到指定的范围,用于去除不同维度数据的量纲以及量纲单位。数据标准化让机器学习模型看到的不同样本彼此之间更加相似,这有助于模型的学习与对新数据的泛化。常见的数据标准化形式:标准化和归一化将数据减去其平均值使其中心为 0,然后将数据除以其标准差使其标准差为 1。标准化:减均值,除方差归一化:减最小值,除最大值减最小值二、什么是批标准化Batch Normalization, 批标准化, 和普通的数据标准化类似
2022-04-04 00:27:46
187
原创 6.12 超参数选择原则
一、网络容量概念:可以认为与网络中的可训练参数成正比网络中的神经单元数越多,层数越多,神经网络的拟合能力越强。但是训练速度、难度越大,越容易产生过拟合。二、如何选择超参数所谓超参数,也就是搭建神经网络中,需要我们自己选择(不是通过梯度下降算法去优化)的那些参数。比如,中间层的神经元个数、学习速率三、如何提高网络的拟合能力一种显然的想法是增大网络容量:1.增加层2.增加隐藏神经元个数这两种方法哪种更好呢?单纯的增加...
2022-04-04 00:27:33
448
原创 6.5 使用 VGG 预训练网络实现猫狗分类
一)代码实现迁移学习import tensorflow as tfimport kerasfrom keras import layersimport numpy as npimport osimport shutilbase_dir = './dataset/cat_dog'train_dir = base_dir + '/train'train_dog_dir = train_dir + '/dog'train_cat_dir = train_dir + '/cat't..
2022-04-04 00:10:49
269
原创 6.4 预训练网络(迁移学习)基础概念
一、预训练网络预训练网络是一个保存好的之前已在大型数据集(大规模图像分类任务)上训练好的卷积神经网络。如果这个原始数据集足够大且足够通用,那么预训练网络学到的特征的空间层次结构可以作为有效的提取视觉世界特征的模型。即使新问题和新任务与原始任务完全不同学习到的特征在不同问题之间是可移植的,这也是深度学习与浅层学习方法的一个重要优势。它使得深度学习对于小数据问题非常的有效。二、 Keras内置预训练网络Keras库中包含VGG16、 VGG...
2022-04-03 20:30:03
979
原创 6.3 使用回调函数在训练过程中保存模型
在训练期间保存检查点在训练期间或训练结束时自动保存检查点。这样一来,您便可以使用经过训练的模型,而无需重新训练该模型,或从上次暂停的地方继续训练,以防训练过程中断。回调函数:tf.keras.callbacks.ModelCheckpointcheckpoint_path = 'training_cp/cp.ckpt'cp_callback = tf.keras.callbacks.ModelCheckpoint( checkpoint_path, ...
2022-04-03 18:17:06
306
原创 6.2 模型保存 --- 加载和保存模型结构&权重
一、只保存/加载模型的结构保存模型的结构,而非其权重或训练配置项:json_string = model.to_json()model.save('my_model.h5')my_model_json = model.to_json()with open('my_json_model.json', 'w') as f: f.write(my_model_json)from keras.models import model_from_jsonmodel = model_fr.
2022-04-03 17:41:05
2864
原创 6.1 Keras模型保存 ---- 加载和保存整个模型
一、模型保存依赖包Keras 模型保存为 HDF5 文件Keras 使用了 h5py Python 包。h5py 是 Keras 的依赖项,应默认被安装二、保存/加载整个模型不建议使用 pickle 或 cPickle 来保存 Keras 模型。使用 model.save(filepath) 将 Keras 模型保存到单个HDF5 文件中。三、Keras卷积实例 手写数据集import tensorflow as tfimpo...
2022-04-03 17:31:14
3837
原创 5.7 猫狗数据集
import kerasfrom keras import layersimport numpy as npimport osimport shutilbase_dir = './dataset/cat_dog'train_dir = os.path.join(base_dir , 'train')train_dir_dog = os.path.join(train_dir , 'dog')train_dir_cat = os.path.join(train_dir , 'cat').
2022-04-03 17:03:23
1580
原创 5.6 Keras卷积神经网络练习 cifar10数据集
一)cifar10数据集简介CIFAR-10是一个更接近普适物体的彩色图像数据集。CIFAR-10 是由Hinton 的学生Alex Krizhevsky 和Ilya Sutskever 整理的一个用于识别普适物体的小型数据集。一共包含10 个类别的RGB 彩色图片:飞机( airplane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车( tr...
2022-04-03 15:36:42
912
原创 5.5 Keras卷积神经网络实例 --- 搭建模型整体架构& 训练和优化
一、搭建模型整体架构model = keras.Sequential()model.add(layers.Conv2D(64, (3, 3), activation='relu', input_shape=(28, 28, 1)))model.add(layers.Conv2D(64, (3, 3), activation='relu'))model.add(layers.MaxPooling2D())model.summary() model.add(layers.Flatten())
2022-04-03 15:10:39
1854
原创 5.4 Keras卷积神经网络实例 --- 输入数据形状
手写数据集是深度学习中,最基础应用最广泛的数据集。手写数据集内置在keras中一)整体代码import kerasfrom keras import layersimport numpy as npimport matplotlib.pyplot as plt%matplotlib inlineimport keras.datasets.mnist as mnist(train_image, train_label), (test_image, test_label) = mn
2022-04-03 14:09:10
2906
原创 5.3 卷积神经网络整体架构
一)整体结构总结:卷积神经运算就是使图像变小变厚的过程。变厚的过程是卷积去提取图片的特征,变小的过程就是池化去减小图片的维度最后全连接层就是将所有的特征分类集中在一起。二)非线性变化层也就是激活函数:relusigmiodtanh三)全连接层将最后的输出与全部特征连接,我们要使用全部的特征,为最后的分类的做出决策。最后配合softmax进行分类...
2022-04-03 13:01:26
1901
原创 5.1 卷积神经网络简介
1)CNN基础前面我们讲解了机器学习基础知识,包括多层感知器等问题。下面我们要介绍的目标识别与分类,就是在前面问题的基础上进行扩展,实现对于图像等分类和识别。实现对图像的高准确率识别离不开一种叫做卷积神经网络的深度学习技术。卷积神经网络主要应用于计算机视觉相关任务,但它能处理的任务并不局限于图像,其实语音识别也是可以使用卷积神经网络。将带大家使用识别Mnist手写数字、 cifar10图像数据以及猫和狗图像识别数据来让大家对于卷积神经网络有一个大概的了...
2022-04-02 00:59:32
278
原创 4.3 keras基础实例 --- 电影评价预测 --- 文本向量化 ---- K-hot编码
1)K-hot编码# 文本向量化import numpy as np def k_hot(seqs, dim=10000): result = np.zeros((len(seqs), dim)) for i,seq in enumerate(seqs): result[i, seq] = 1 return result即其思想是将每条评论都转换为10000长度的列表,单词出现的地方置为1,没有出现的地方置为0譬如,[1, 1, 1, 0, 0
2022-04-02 00:24:27
355
原创 4.2 Keras基础实例 --- 电影评价预测
1)imdb电影评论数据集电影评论数据集也是内置数据集import kerasfrom keras import layersimport matplotlib. pyplot as pltdata = keras.datasets.imdbmax_word = 10000 # 控制网络规模# 1)加载数据集(x_train,y_train),(x_test,y_test) = data.load_data(num_words=max_word)# 查看数据信...
2022-04-01 23:53:13
385
原创 4.1 keras基础实例 手写数字识别
1)手写数据集手写数据集是深度学习中,最基础应用最广泛的数据集。 手写数据集内置在keras中import kerasfrom keras import layersimport matplotlib. pyplot as pltimport numpy as npimport keras.datasets.mnist as mnist# 1)加载数据集(train_image, train_label),(test_image,test_label...
2022-04-01 22:36:21
1356
原创 3.8 网络参数选择的总原则
构建网络的总原则总原则:保证神经网络容量足够拟合数据一、增大网络容量,直到过拟合二、采取措施抑制过拟合三、继续增大网络容量,直到过拟合网络容量 --- 信息传递的能力如何抑制过拟合 --- DropOut、正则化...
2022-04-01 20:01:17
309
原创 3.7 使用正则抑制过拟合
正则化L1 正则化 loss = s * abs(w1 + w2 + ...) + mseL2 正则化 loss = s *(w1**2 + w2**2 + ...) + mseimport kerasfrom keras import layersimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom keras import regulari...
2022-04-01 16:40:13
731
原创 3.6 DropOut抑制过拟合
1)为什么说DropOut可以抑制过拟合?(1)取平均的作用:先回到标准的模型即没有dropout,我们用相同的训练数据去训练5个不同的神经网络,一般会得到5个不同的结果,此时我们可以采用“5个结果取均值”或者“多数取胜的投票策略”去决定最终结果。(2)减少神经元之间复杂的共适应关系因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻...
2022-04-01 15:53:35
636
原创 3.5 过拟合与神经网络的客观评价
评价标准:对未见过数据的预测import kerasfrom keras import layersimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltdata = pd.read_csv('./dataset/credit-a.csv', header=None)x = data.iloc[:, :-1].valuesy = data.iloc[:,-1].replace(-1,0).values.
2022-04-01 15:16:54
609
原创 3.4 信用卡欺诈预测代码实现
import kerasfrom keras import layersimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltdata = pd.read_csv('./dataset/credit-a.csv', header=None)x = data.iloc[:, :-1].valuesy = data.iloc[:,-1].replace(-1,0).values.reshape(-1, 1)y.
2022-04-01 14:48:15
759
原创 3.3 多层感知器的代码实现
基于JupyterNoteBook(Annaconda3)搭建的tensorflow开发环境。所使用到的数据集见我的博客上传的资源中,欢迎大家下载。import pandas as pdimport kerasimport numpy as npfrom keras import layers# 1)Pandas模块读取数据data = pd.read_csv('./dataset/tt/train.csv')# 2)数据预处理y = data.Survivedx = da
2022-04-01 14:15:50
243
原创 3.2 激活函数和常见的优化算法
1)常见的激活函数1、sigmoid激活函数一般用于二分类的输出2、relu激活函数3、tanh激活函数2)常见的优化函数优化器(optimizer)是编译Keras模型的所需的两个参数之一。你可以先实例化一个优化器对象,然后将它传入model.compile(),或者你可以通过名称来调用优化器。在后一种情况下,将使用优化器的默认参数。1)SGD(随机梯度下降优化器)随机梯度下降优化器SGD和min-batch是同一个意思,抽取m个小批量(独...
2022-04-01 13:50:42
326
原创 3.1 多层感知器原理与梯度下降算法
1)单个神经元(二分类)2)多个神经元(多分类) --- 建立多个神经元,但是他只有一层补: 单层神经元的缺陷 1)单层神经元是无法拟合“异或”运算。异或问题看似简单,使用单层的神经元确实没办法解决。 即是输入与输出之间无法去进行线性分割,比如下图 2)总结:Sigmoid神经元要求数据必须是线性可分的。“异或”问题无法找到一条直线去分割两个类。...
2022-04-01 13:25:31
1269
文章《猫狗数据分类实例》猫狗数据集
2022-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人