08 2020 档案
摘要:实现前向传播,给物识图仅需三步: 复现模型 加载参数 预测结果 # 复现模型 mode = tf.keras.models.Sequential([ tf.keras.layers.Flatten(), tf.keras.layers.Dense(128, activation="relu"), t
阅读全文
摘要:断点续训,即在一次训练结束后,可以先将得到的最优训练参数保存起来,待到下次训练时,直接读取最优参数,在此基础上继续训练。 读取模型参数: 存储模型参数的文件格式为 ckpt(checkpoint)。 生成 ckpt 文件时,会同步生成索引表,所以可通过判断是否存在索引表来判断是否存在模型参数。 #
阅读全文
摘要:数据增强可以帮助扩展数据集。对图像的增强,就是对图像的简单形变,用来应对因拍照角度不同而引起的图片变形。 数据增强函数 image_gen_train = tf.keras.preprocessing.image.ImageDataGenerator( # 调整输入特征大小,每个输入特征将乘以该参数
阅读全文
摘要:在实际应用中,我们常常需要自制数据集,解决本领域应用,而数据通常是图片或文字,需要做格式转换,才能在训练时使用。 代码: import tensorflow as tf from PIL import Image import numpy as np import os # 训练用的输入特征和标签
阅读全文
摘要:FASHION 数据集一共有 7 万张图片,每张图片都是 28x28 像素点的灰度值数据,其中 6 万张用于训练,1 万张用于测试。 一共有 10 个分类: 0 T恤 1 裤子 2 帽头衫 3 连衣裙 4 外套 5 凉鞋 6 衬衫 7 运动鞋 8 包 9 靴子 f.keras + Sequentia
阅读全文
摘要:MNIST 数据集一共有 7 万张图片,都是 28x28 像素点的 0~9 手写数字,其中 6 万用于训练,1 万张用于测试。 f.keras + Sequential() 详解 代码: import tensorflow as tf # 读入训练所需的输入特征和标签 mnist = tf.kera
阅读全文
摘要:tf.keras + Sequential() 可以搭建出上层输入就是下层输出的顺序网络结构,但是无法写出一些带有跳连的非顺序网络结构。 这时候可以选择用类 class 搭建神经网络结构,即使用 class 类封装一个网络结构: ... class MyModel(Model): def __ini
阅读全文
摘要:tf.keras 是 tensorflow API,可以快速搭建神经网络模型。 六步: import 相关模块。 指定要喂入网络的训练集和测试集。 在 Sequential() 中搭建网络结构。 在 compile() 中配置训练方法。 在 fit() 中执行训练过程。 用 summary() 打印
阅读全文
摘要:神经网络的复杂度 1.空间复杂度 层数 = 隐藏层的层数 + 1个输出层 总参数 = 总w + 总b 2.时间复杂度 乘加运算次数 = 总w 指数衰减学习率 学习率lr表征了参数每次更新的幅度,设置过小,参数更新会很慢,设置过大,参数不容易收敛。 在实际应用中,可以先使用较大学习率,快速找到较优值,
阅读全文
摘要:主要步骤: 1.准备数据 数据集读入 数据集乱序 将数据集分为训练集和测试集 将输入特征和标签配对,每次喂入神经网络一小撮(batch) 2.搭建网络 定义神经网络中所有可训练参数 3.参数优化 反向传播,不断减少loss 4.测试效果 计算当前参数前向传播后的准确率 代码: import tens
阅读全文
摘要:强制类型转换 tf.cast() 计算张量最小值 tf.reduce_min() 计算张量最大值 tf.reduce_max() 返回行/列最大值的索引 tf.argmax() 计算张量沿行/列的平均值 tf.reduce_mean() 计算张量沿行/列的和 tf.reduce_sum() 声明可训
阅读全文
摘要:张量(tensor):可以表示0阶到n阶的数组 0阶张量(标量):单独的一个数 1阶张量(向量):一维数组 2阶张量(矩阵):二维数组 n阶张量(张量):n维数组 tensorflow 中几种常见的数据类型: tf.int,tf.float tf.int32 tf.float32 tf.float6
阅读全文
摘要:当今人工智能主流方向 —— 连接主义,即仿脑神经元连接,实现感性思维,如神经网络。 神经网络的一般设计过程: 准备数据:采集大量“特征/标签”数据 搭建网络:搭建神经网络结构 优化参数:训练网络获取最佳参数(反向传播) 应用网络:将网络保存为模型,输入新数据,输出分类或预测结果(前向传播) 前向传播
阅读全文
摘要:1.缩放 代码: # 使用resize函数实现图片缩放 import cv2 src = cv2.imread("C:/360Downloads/1.jpg", 1) cv2.imshow("src", src) srcInfo = src.shape height = srcInfo[0] wid
阅读全文
摘要:神经网络有三层,输入层A,隐藏层B,输出层C,满足: A(10x1)*W1(1x10)+b1(1x10)=B(10x10) B(10x10)*W2(10x1)+b2(10x1)=C(10x1) 我们需要做的,便是通过多次训练(尝试不同 w、b 的值),找到合适的 w1w2、b1b2,使预测结果更接近
阅读全文
摘要:matplotlib 是 python 的绘图库,通过 matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。 1.绘制折线图和柱状图 代码: import numpy as np import matplotlib.pyplot as plt x
阅读全文
摘要:tensorflow 2.0 无法兼容 1.0 版本,所以需要加上一句 tf.compat.v1.disable_eager_execution(),以保障程序的正常运行。 在 tensorflow 2.0 中,变量初始化、声明会话 session 等函数均被定义在了 tensorflow.comp
阅读全文
摘要:图片在计算机中的存储形式为矩阵,故可通过 src [row, col] 的方式获取和修改相应位置上的像素值。 jpg 格式的彩色图片为三通道图片,分别为(blue, green, red),png 格式的图片为四通道图片,还有 alpha 通道,代表透明度。 1.在图片中画一条红色竖线 代码: im
阅读全文
摘要:将图片保存为 jpg 格式时,可实现有损压缩; 保存为 png 格式时,可实现无损压缩,同时还可以设置图片透明度。 原图片 1.保存为 jpg 格式 import cv2 src = cv2.imread("0.jpg",1) cv2.imwrite("saveImg.jpg",src,[cv2.I
阅读全文
摘要:说白了就是用 python 语言写 opencv 执行代码,写法大体跟 C++ 类似。 import cv2 src = cv2.imread("0.jpg",1) cv2.imshow("dst",src) cv2.waitKey(0)
阅读全文