C++ 类
在 C++ 中,使用类定义自己的数据类型。通过定义新的类型来反映待解决问题中的各种概念, 可以使我们更容易编写、调试和修改程序 类的基本思想是数据抽象(data abstraction)和封装(encapsulation) 数据抽象是一种依赖于接口(interface)和实现(implementation)分离的编程( …
C++ 函数
函数是一个命名了的代码块,可以通过调用函数执行相应的代码。 函数可以有 0 个或多个参数,而且(通常)会产生一个结果。 可以重载函数,也就是说,同一个名字可以对应几个不同的函数 函数基础 函数简介 一个典型的函数(function): 返回类型(return type) 函数名字 形参(parameter) 函数 …
C++ 语句
内容 条件执行语句 循环语句 控制流跳转语句 简单语句 C++ 语言中的大多数语句都以分号结束, 一个表达式末尾加上分号就变成了表达式语句(expression statement)。 表达式语句的作用是执行表达式并丢弃掉求值结果 ival + 5; // 一条没什么实际用处的表达式 cont << …
C++ 表达式
基础 算术运算符 逻辑和关系运算符 赋值运算符 递增和递减运算符 成员运算符 条件运算符 位运算符 sizeof 运算符 逗号运算符 类型转换 运算符优先级表
C++ 字符串、向量、数组
C++ 字符串、向量、数组
C++ 变量和基本类型
基本内置类型 算术类型 类型转换 字面值常量 变量 复合类型 const 限定符 处理类型 自定义数据结构
C++ 快速入门
编写一个简单的 C++ 程序 一个简单的 C++ 程序 每个 C++ 程序都包含一个或多个函数(function), 其中一个必须命名为 main. 操作系统通过调用 main 来运行 C++ 程序 int main() { return 0; } 一个函数的定义包含四部分 返回类型(return type) 函数 …
C++ 编译
操作系统与编译器 编译器 编译 程序源文件命名约定 .cc .cxx .cpp .cp .C 从命令行运行编译器 在不同操作系统和编译器系统中, 运行 C++ 编译器的命令也各不相同, 最常用的编译器是 GUN 编译器和微软的 Visual Studio 编译器 默认情况下, 运行 GNU 编译器的命令是 g++ $ …
C++ 环境
环境配置 Windows Linux macOS IDE VSCode CLion
kubernetes
Kubernetes 简介 Kubernetes 介绍 Kubernetes 是用于自动部署,扩展和管理容器化应用程序的开源系统。 它将应用程序的容器组合成逻辑单元,以便于管理和服务发现。 Kubernetes 源自 Google 2015 年生产环境的运维经验, 同时聚集了社区的最佳创意和实践 Kubernetes …
Dockerfile
Dockerfile 简介 Docker 可以通过读取 Dockerfile 中的指令自动构建镜像 Dockerfile 是一个文本文档, 其中包含了用户创建镜像的所有命令和说明 Dockerfile 详解 变量 定义 变量用 $variable_name 或者 ${variable_name} 表示: …
Docker 制作镜像
Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中, 然后发布到任何流行的 Linux 机器上,也可以实现虚拟化 Linux CentOS 7 安装 docker 移除旧版本 docker $ …
玩转 Docker
Docker 历史 2010 年, 几个搞 IT 的年轻人在美国成立了一家公司 dotCloud, 做一些 PASS 的云计算服务!LXC 有关的容器技术. 他们将自己的技术(容器化技术)命名就是 Docker. Docker 刚刚诞生的时候, 没有引起行业的注意, dotCloud 活不下去了 2013 …
Shell
Shell 简介 操作系统的核心:Linux Kernel。用户与操作系统之间的接口:Shell、GUI。GUI 提供了一种图形化的用户接口,使用起来非常简便易学 Shell 提供了一种命令行的接口,接收用户的键盘输入,并分析和执行输入字符串中的命令,然后给用户返回执行结果, 使用起来可能会复杂一些,但是由于占用的资源 …
Git
22 张图,我发现了 git 秘密 Git Install Ubuntu Install $ sudo apt-get install git Config 配置用户信息 $ git config --global user.name "wangzhefeng" $ git config …
SSH
安装 SSH 服务(Debina) 安装 SSH # 更新软件源 $ sudo apt-get update # 安装 SSH $ sudo apt-get install ssh # 修改配置文件 $ vim /etc/ssh/sshd_config PasswordAuthentication yes …
MATLAB 软件开发工具
MATLAB 软件开发工具
MATLAB 编程
Matlab 程序设计 M 文件 用 MATLAB 语言编写的程序,称为 M 文件。M 文件有两类: 命令文件:没有输入参数,也不返回输出参数 函数文件:可以输入参数,也可返回输出参数 input 函数:用于向计算机输入一个参数 pause 函数:暂停程序的执行 disp 函数:命令窗口输出函数 程序设计 for …
MATLAB 数据导入和分析
MATLAB 数据导入和分析
MATLAB 数学
Matlab 符号运算 符号对象的建立 sym 符号变量 = sym(A) syms syms 符号变量1 符号变量2 ... 符号变量n 查找符号变量 查找符号表达式种的符号变量 findsym(expr) 按字母顺序列出符号表达式 expr 中的所有符号变量 findsym(expr, N) …
MATLAB 外部语言接口
MATLAB 外部语言接口
MATLAB 数据可视化
Matlab 图形函数包括二维和三维绘图函数,用于以可视化形式呈现数据和通信的结果。 以交互方式或编程方式自定义绘图。 Matlab 图形包括: 二维绘图 三维绘图 图像 动画 快速入门 二维绘图 线图 plot 要创建二维线图,需要使用 plot 函数。 例如,绘制在从 $0$ 到 $2\pi$ 的值组成的线性间距向 …
MATLAB 安装及命令行工具
MATLAB 下载 夸克网盘地址 1: 地址:https://pan.quark.cn/s/acfe48cd47af#/list/share 提取码:rsrz 夸克网盘地址 2: 地址:https://pan.quark.cn/s/c669fb805e88 提取码:xtfl MATLAB 安装 解压安装文件 运行安装文 …
MATLAB 基础语法
MATLAB 是 “matrix laboratory” 的缩写形式。其他编程语言通常一次只能处理一个数字, 而 MATLAB 则针对整个矩阵和数组进行运算处理。语言基础只是包括基本运算, 例如创建变量、数组索引、算术运算和数据类型。 MATLAB 命令行工具 在 MATLAB 中工作时,可以发 …
Numpy
import numpy as np np.set_printoptions(threshold = 'nan') ndarray 一种多维数组对象 创建 ndarray data_list = [1, 2, 3] data_tuple = (1, 2, 3) data_string = …
Python 面试问题
Python 数据结构 对象分类: 对象类型 对象名 分类 是否可变 数字 int,float,complex 数值 否 字符串 string 序列 否 列表 list 序列 是 字典 dict 对应 是 元组 tuple 序列 否 文件 file 扩展 … Sets set 集合 是 frozenset …
Python 迭代
for 循环包括多数计数器式的循环. 一般而言, for 比 while 容易写, 执行时也比较快. 所以每当你需要遍历序列时, 都应该把它作为首选的工具. 但是, 有些情况下, 需要以更为特定的方式来进行迭代. 例如, 如果你需要在列表中每隔一个元素或每隔两个元素访问, 或者在过程中修改列表呢? 如果在同一个 for …
Python 类型提示简介
动机 类型提示 def get_full_name(first_name, last_name): full_name = first_name.title() + " " + last_name.title() return full_name …
Pandas
DataFrame 多层索引 多层索引取值 下面是一个多索引 DataFrame 数据: import pandas as pd import numpy as np df = pd.DataFrame( np.random.randint(50, 100, size = (4, 4)), columns = …
Matplotlib
一个 Plot 的生命周期 import numpy as np import matplotlib.pyplot as plt print(plt.style.available) plt.style.use("fivethirtyeight") plt.rcParams.update({ …
Maplotlib QA
颜色搭配 图像风格设置 解决使用中文乱码问题 在使用 Matplotlib 画图的时候,发现一些 Unicode 字符(例如,汉字) 无法正常显示:在生成的图片中, 汉字是乱码的,显示为一个方框。经过大量的查找和阅读, 终于明白了如何在使用 Matplotlib 时,正确渲染 Unicode 字符 之所以中文字符被显示 …
Python 基础数据
Python String # 字符串方法 mystr = "\t WangZhefeng \n" print(mystr.lower()) print(mystr.upper()) print(mystr.isalpha()) print(mystr.isdigit()) …
Pyhton 异常处理
为什么使用异常? 异常可以改变程序中控制流程的事件 在 Python 中, 异常会根据错误自动地被触发, 也能由代码触发和截获 异常让我们从一个程序中任意大的代码中跳出来 异常可以在一个步骤内跳至异常处理器, 终止开始的所有函数调用而进入异常处理器, 在异常处理器中编写代码, 来响应在适当时候引发的异常 异常处理器会留 …
py2so
对 Python 源代码进行加密(将.py文件编译为.so文件) 系统环境: Ubuntu 18.04 Python 环境: Python 3.7.5 安装依赖库 $ sudo apt install python3-dev gcc $ pip install cython 写一个测试 demo …
Python 文件
内置 open 函数会创建一个 Python 文件对象, 可以作为计算机上的一个文件链接. 在调用 open 之后, 你可以通过调用返回文件对象的方法来读写相关外部文件. 文件对象不是数字、序列、对应. 相反, 文件对象只是常见文件处理任务输出模块. 多数文件方法都与执行外部文件相关的文件对象的输入和输出有关, 但其他 …
Python 数据校验
Python 数据校验、类型提示库: pydantic typing validators voluptuous validators 安装 validators $ pip install validators 基础的 validators 在 validators 中每一个 validator 是一个简单的函数, …
Python Processing 和 Threading
进程、线程、并发、并行、高并发 知乎解释 <https://www.zhihu.com/question/307100151/answer/894486042>_ …
Python 项目打包发布
本文介绍如何对一个 Python 项目在本地打包,发布在 PyPI 上 大致流程: project => package => distribution package => archives => PyPI => pip 创建一个简单的 project 创建一个 project …
pydantic
Data validation and settings management using python type annotations. pydantic enforces type hints at runtime, and provides user friendly errors when data *s …
FastAPI 部署
FastAPI 版本 FastAPI 可用版本 https://fastapi.tiangolo.com/release-notes/ FastAPI 版本 FastAPI 版本 fastapi>=0.45.0,<0.46.0 PATCH: 版本号最后一个数字, …
FastAPI quick start
FastAPI 介绍 FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。 官方文档: https://fastapi.tiangolo.com 源代码: …
Flask 静态文件
动态的 web 应用也需要静态文件,一般是 CSS 和 JavaScript 文件。 理想情况下你的 服务器已经配置好了为你的提供静态文件的服务。 但是在开发过程中, Flask 也能做好 这项工作。 只要在你的包或模块旁边创建一个名为 static 的文件夹就行了。 静态文件位于应用的 /static 中。 使用特定 …
Flask 路由
使用 route() 装饰器来把函数绑定到 URL: from flask import Flask @app.route("/") def index(): return "Index Page" @app.route("/hello") def hello(): …
Flask 安装与启动
Flask 安装 Flask 依赖 依赖 Werkzeug 用于实现 WSGI ,应用和服务之间的标准 Python 接口。 Jinja 用于渲染页面的模板语言。 MarkupSafe 与 Jinja 共用,在渲染页面时用于避免不可信的输入,防止注入攻击。 ItsDangerous 保证数据完整性的安全标志数据,用于保 …
Python 系统工具
os os 模块包含了在 C 程序和 shell 脚本中经常用的所有操作系统调用. 它的调用涉及目录、进程和 shell 变量等. 准确地说, 该模块提供了 POSIX 工具, 操作系统调用的跨平台移植标准, 以及不依赖平台的目录处理工具. 如内嵌模块 os.path. 在操作实践中, os 基本上作为计算机系统调用的 …
Python 正则表达式
re 库介绍 re 库是 Python 处理文本的标准库 Python re 库主要定义了: 9 个常量 12 个函数 1 个异常 re 库使用 import re re 库常量 re 库 中的常量表示不可更改的变量, 一般用于做标记. \ re 模块中有 9 个常量, 常量值都是 int 类型: re.ASCII …
Python shutile
shutile 简介 shutile 模块提供了一系列对文件和文件集合的高阶操作, 特别是提供了一些文件拷贝和删除的函数. 对于单个文件的操作, 使用 os 模块. 常用 API: copyfileobj copyfile copymode copystat copy copy2 ignore_patterns …
Python email
# -*- coding: utf-8 -*- import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.image import …
Python 连接数据库
MySQL mysqlclient mysqlclient 包是用于 MySQL 的最流行的 Python 包之一。它包含 MySQLdb 模块, 一个提供 Python 数据库 API 的 MySQL 接口 安装 Linux: $ sudo apt-get install python3-dev …
Python 大数据集处理
Python 主流数据处理工具 如何在有限的 RAM 下快速地读取数据,使用更少的 disk 来存储数据是我们在处理大型数据时需要特别考虑的 pandas 具有非常丰富的数据处理工具,能非常方便地处理数据 在处理大数据的时候,使用pandas会带来不必要的大内存的使用 Dask Dask 将 Pandas 扩展为一个并 …
Python Wheel 使用
https://peps.python.org/pep-0427/
Python Jupyter
Install Jupyter Jupyter 相关库: jupyter notebook jupyterlab ipykernel jupyter-client jupyter-console jupyter-core jupyter-server jupyterlab-pygments …
Python Env
Python 环境使用需求 检查 Python 环境 检查项 Python pip 检查方法 $ python --version $ python3 --version $ pip3 --version 检查 Python 安装的位置 检查项 Python pip 检查方法 $ which python $ …
Python conda
Conda 下载 Anaconda3 Anaconda 老版本 Miniconda3 Miniconda 老版本 Conda 安装 如何检查当前环境中是否安装了 Conda? Windows(Anaconda Prompt) echo %PATH% macOS 和 Linux echo $PAHT 如何检查当前环境中默 …
Python pip
TODO 关于 pip 的 15 个使用小技巧 pip 介绍 pip - The Python Package Installer pip is the package install for Python. You can use pip to install packages from the Python …
Sphinx Doc
Sphinx is a powerful documentation generator that has many great features for writing technical documentation including: Generate web pages, printable PDFs, …
MkDocs Doc
MkDocs is a documentation generator that focuses on speed and simplicity. It has many great features including: Preview your documentation as you write it Easy …
Python 装饰器
# -*- coding: utf-8 -*- from functools import wraps def logit(func): @wraps(func) def with_logging(*args, **kwargs): print(func.__name__ + "was …
Python Class & OOP
Python OOP Python OOP OOP 提供了一种不同寻常而往往更有效的检查程序的方式, 利用这种设计方法, 我们分解代码, 把代码的冗余度将至最低, 并且通过定制现有的代码来编写新的程序, 而不是在原处进行修改 OOP 不仅仅是一门技术, 更是一种经验 Python class 类是 Python 面向对 …
Python 链式调用
Python 链式调用 在 Python 中实现一个简单的链式调用就是通过构建方法并返回对象自身或返回归属类 class Chain(): def __init__(self, name): self.name = name def introduce(self): print("hello, my name …
Python 描述符
为什么要使用描述符? 问题 假想你正在给学校写一个成绩管理系统, 并没有太多编码经验的你, 可能按照下面的常规思路来写. 看起来一切都很合理. 但是程序并不像人那么智能, 不会自动根据使用场景判断数据的合法性, 如果老师在录入成绩的时候, 不小心录入了将成绩录成了负数, 或者超过100, 程序是无法感知的. 聪明的你, …
PyTorch torch.Compile
torch.compile 特性 PyTorch 2.0 虽然发布了很多特性,但是对于入门/普通开发者而言,关系不大。 PyTorch 从 2017 年发展到 2022 年已经过去五年,从最初的用户易用逐步向工程化、 高性能方向迭代,因此后续的版本更多是针对规模化落地、大型 AI 基建、平台兼容性等方面。 其中最大的特 …
PyTorch 数据增强
数据增强 数据增强(Data Augmentation)已经成为深度学习时代的常规做法, 数据增强目的是为了增加训练数据的丰富度, 让模型接触多样性的数据以增加模型的泛化能力。 通常,数据增强可分为在线(online)与离线(offline)两种方式: 离线方式指的是在训练开始之前将数据进行变换,变换后的图片保存到硬盘 …
PyTorch torchvision
数据集 torchvision.datasets torch.utils.data.DataLoader 内置数据集 示例: from torch.utils.data import DataLoader from torchvision import datasets imagenet_data = …
PyTorch torchtext
PyTorch torchtext
PyTorch torchaudio
PyTorch torchaudio
PyTorch-模型部署
模型部署简介 模型部署,指把训练好的模型在特定额环境中运行的过程。 模型部署要解决模型框架兼容性差和模型运行速度慢这两个大问题 模型部署的常见流水线是:深度学习框架 => 中间表示 => 推理引擎, 其中比较常用的一个中间表示是 ONNX 深度学习模型实际上就是一个计算图。模型部署时通常把模型转换成静态的计 …
PyTorch 模型保存和加载
模型保存与加载简介 序列化与反序列化 因为在内存中的数据运行结束会进行释放,所以需要将数据保存到硬盘中, 以二进制序列的形式进行长久存储,便于日后使用。 在 PyTorch 中,对象就是模型,所以序列化和反序列化, 就是将训练好的模型从内存中保存到硬盘里,当要使用的时候,再从硬盘中加载。 PyTorch 提供的序列化和 …
PyTorch 训练模型 GPU
深度学习模型训练过程的耗时主要来自于两个部分,一部分来自数据准备,另一部分来自参数迭代。 当数据准备过程还是模型训练时间的主要瓶颈时,可以使用更多进程来准备数据。 当参数迭代过程成为训练时间的主要瓶颈时,通常的方法是应用 GPU 来进行加速。 GPU 与 CPU 在处理器家族中,有两大阵营,分别是 CPU 和 GPU, …
PyTorch 模型训练
模型训练简介 模型训练代码类型 PyTorch 通常需要用户编写自定义训练循环,训练循环的代码风格因人而异。 有三类典型的训练循环代码风格: 脚本形式训练循环 函数形式训练循环 类形式训练循环 模型训练代码模板 一个良好的训练代码,可以有助于分析和超参调优。训练模型的代码结构可以千变万化, 每个人结合自己的风格进行编 …
PyTorch 模型构建
模型创建简介 使用 PyTorch 通常有三种方式构建模型: 使用 torch.nn.Sequential 按层顺序构建模型 add_module 方法 继承 torch.nn.Module 基类构建自定义模型 实现 forward 方法 继承 torch.nn.Module …
PyTorch 模型层
模型层简介 深度学习模型一般由各种模型层组合而称。torch.nn 中内置了非常丰富的各种模型层, 它们都属于 torch.nn.Module 的子类,具备参数管理功能。 如果这些内置的模型层不能满足需求,也可以通过继承 torch.nn.Module 基类构建自定义的模型层。 实际上 PyTorch 不区分模型和模型 …
PyTorch 数据管道
PyTorch 数据管道 PyTorch 通常使用 torch.utils.data.Dataset 和 torch.utils.data.DataLoader 这两个工具类来构建数据通道: Dataset Dataset 是一个抽象基类,提供给用户定义自己的数据读取方式 Dataset 定义了数据集的内容,保存了数据 …
PyTorch 动态计算图
计算图 计算图是用来描述运算的有向无环图。主要有两个因素:节点、边。 其中节点表示数据,如向量、矩阵、张量;而边表示运算,如加、减、乘、除、卷积等。 使用计算图的好处不仅是让计算看起来更加简洁, 还有个更大的优势是让梯度求导也变得更加方便。 动态计算图机制 动态计算图机制 PyTorch 的计算图由节点和边组成,节点表 …
PyTorch 自动微分
神经网络通常依赖反向传播算法求梯度来更新网络参数, 而求梯度过程通常是一件非常复杂繁琐而且容易出错的事情。 深度学习框架可以帮助自动地完成这种求梯度的运算。 PyTorch 一般通过反向传播 torch.autograd.backward() 方法实现求梯度计算, 该方法求得的梯度将保存在对应自变量张量的 grad 属 …
PyTorch 张量
tensor 介绍 tensor 是 PyTorch 中最基本的概念,其参与了整个运算过程, 这里主要介绍 tensor 的概念和属性,如 data、variable、device 等, 并且介绍 tensor 的基本创建方法,如直接创建、依数值创建、依概率分布创建等。 tensor 与 Tensor …
PyTorch 环境
Windows 安装 PyTorch CPU version 使用 pip 安装 PyTorch $ pip3 install torch torchvision torchaudio 使用 conda 安装 PyTorch $ conda install pytorch torchvision torchaudio …
PyTorch 概述
PyTorch 建模流程 使用 PyTorch 实现神经网络模型的一般流程包括: 数据准备 定义模型 模型层 激活函数 训练模型 损失函数 优化算法 评估指标 评估模型 使用模型 保存模型 模型部署 PyTorch 核心概念 PyTorch 是一个基于 Python 的机器学习、深度学习库。 PyTorch 底层最核心 …
PyTorch torchkeras
PyTorch torchkeras
Pytorch Lightning
Pytorch Lightning
PyTorch TensorBoard 可视化
在深度学习建模的过程中,如果能够使用丰富的图像来展示模型的结构, 指标的变化,参数的分布,输入的形态等信信息,会提升对问题的洞察力 PyTorch 中利用 TensorBoard 可视化的大概过程如下: 首先,在 PyTorch …
PyTorch 技巧
基本配置 导入包和版本查询 import torch import torch.nn as nn print(torch.__version__) print(torch.version.cuda) print(torch.backends.cudnn.version()) …
PyTorch Pipeline
Libraries import torch from torch import nn from torch.utils.data import Dataset, DataLoader from torchvision import datasets from torchvision.transforms import …
TensorFlow-模型部署
TensorFlow Serving-Docker-Tornado 当我们训练完一个tensorflow(或keras)模型后,需要把它做成一个服务, 让使用者通过某种方式来调用你的模型,而不是直接运行你的代码(因为你的使用者不一定懂怎样安装), 这个过程需要把模型部署到服务器上。常用的做法如使 …
tensorflow
评价指标简介 损失函数除了作为模型训练时的优化目标,也能够作为模型好坏的一种评价指标。 但是,通常还会从其他角度评估模型的好坏,这就是评价指标 通常损失函数都可以作为评价指标,如 MAE、MSE、CategoricalCrossentropy 等也是常用的评价指标。 但评价指标不一定可以作为损失函数, …
TensorFlow 三阶 API
低阶 API 低阶 API 主要包括: 张量操作 计算图 自动微分 中阶 API TensorFlow 中阶 API 主要包括: 各种模型层 损失函数 优化器 数据管道 特征列 高阶 API TensorFlow 的高阶 API 主要为 tf.keras.models 提供的模型的类接口 TensorFlow …
TensorFlow Keras 后端
什么是 Keras 后端 Keras 后端: Keras 是一个模型级库, 为开发深度学习模型提供了高层次的构建模块。 它不处理诸如张量乘积和卷积等低级操作。 相反, 它依赖于一个专门的、优化的张量操作库来完成这个操作, 它可以作为 Keras 的「后端引擎」。 相比单独地选择一个张量库, 而将 Keras 的实现与该 …
TensorFlow Estimator
一种可极大地简化机器学习编程的高阶TensorFlow API; Estimator封装的操作: 训练 评估 预测 导出以使用 Estimator优势: 可以在本地主机上或分布式多服务器环境中运行基于 Estimator 的模型, 而无需更改模型。此外, 可以在 CPU、GPU 或 TPU …
TensorFlow Application
预训练模型下载 Keras Applications(tensorflow.keras.applications) 提供了预训练好的深度学习模型, 这些模型可以用于预测、特征提取等 当初始化一个模型时就会自动下载, 默认下载的路径是: ~/.keras/models/ 图像分类模型 模型 在 ImageNet 数据上预 …
TensorFlow 和 Spark
通过 TensorFlow for Java 在 Spark 中调用训练好的 TensorFlow 模型。利用 Spark 的分布式计算能力, 从而可以让训练好的 TensorFlow 模型在成百上千的机器上分布式并行执行模型推断, 这里的 Spark 指 Scala 版本的 Spark Spark …
TensorFlow TensorBoard
实时查看参数变化情况 TensorBoard 使用介绍 首先, 在代码目录下建立一个文件夹, 存放 TensorBoard 的记录文件 $ mkdir tensorboard 在代码中实例化一个记录器 summary_writer = …
TensorFlow 网络层
深度学习模型一般由各种模型层组合而成,tf.keras.layers 内置了非常丰富的各种功能的模型层 如果这些内置模型层不能够满足需求,可以通过编写 tf.keras.Lambda 匿名模型层, 或继承 tf.keras.layers.Layer …
TensorFlow 模型部署
TensorFlow Serving 模型部署介绍 TensorFlow 训练好的模型以 TensorFlow 原生方式保存成 protobuf 文件后可以用很多种方式部署运行 通过 TensorFlow.js 可以用 JavaScript 脚本加载模型并在浏览器中运行 TensorFlow …
TensorFlow 模型编译和训练
回调函数 模型训练 TensorFlow 训练模型通常有 3 种方法: 内置 fit() 方法 内置 train_on_batch() 方法 自定义训练循环 使用 GPU 训练模型 使用单 GPU 训练模型 使用多 GPU 训练模型 使用 TPU 训练模型 损失函数 一般来说,监督学习的目标函数由损失函数和正则化项组 …
TensorFlow 模型构建
使用 Keras 接口有以下 3 种方式构建模型: 使用 Sequential(Sequential API) 按层顺序构建模型 使用函数式 API(Functional API) 构建任意结构模型 继承 Model 基类(Subclassing API)构建自定义模型 模型共有的方法和属性 from …
TensorFlow 模型保存和加载
tf.train.Checkpoint: 变量的保存与恢复 很多时候, 希望在模型训练完成后能将训练好的参数(变量)保存起来, 这样在需要使用模型的其他地方载入模型和参数, 就能直接得到训练好的模型, 保存模型有很多中方式: Python 的序列化模块 pickle 存储 model.variables 然而, …
TensorFlow 工具集
模型可视化 plot_model() Converts a Keras model to dot format and save to a file. import tensorflow as tf tf.keras.utils.plot_model( model, to_file = …
TensorFlow 数据集
TensorFlow Dataset TensorFlow Datasets 库 库安装: $ pip install tensorflow $ pip install tensorflow-datasets 库导入: # tf.data, tf.data.Dataset, tf.data.Iterator …
TensorFlow 计算图
计算图由节点(nodes)和线(edges)组成: 节点表示操作符(Operation),或者称之为算子 线表示计算间的依赖 实现表示有数据的传递依赖,传递的数据即张量,虚线通常可以表示控制依赖,即执行先后顺序 TensorFlow 有三种计算图的构建方式 静态计算图 动态计算图 AutoGraph …
TensorFlow 自动微分机制
神经网络通常依赖反向传播求梯度来更新网络参数,求梯度过程通常是一件非常复杂而容易出错的事情, 而深度学习框架可以帮助自动地完成求梯度运算 TensorFlow 一般使用梯度磁带 tf.GradientTape 来记录正向运算过程,然后反播磁带自动得到梯度值, 这种利用 tf.GradientTape …
TensorFlow 张量
张量和计算图是 TensorFlow 的核心概念 TensorFlow 的基本数据结构是张量。张量即多维数组,TensorFlow 的张量和 Numpy 中的 array 很类似。 从行为特性来开,有两种类型的张量: 常量 Constant 常量的值在计算图中不可以被重新赋值 变量 Variable 变量可以在计算图中 …
TensorFlow Env
TensorFlow 支持的硬件平台 PC CPU GPU 一块主流的 NVIDIA GPU 会大幅提高训练速度 显卡的 CUDA 核心数和显存大小是决定机器学习性能的两个关键参数 显卡的 CUDA 核心数决定训练速度 显卡的 显存大小 是决定能够训练多大的模型以及训练时的最大批次大小(batch size) 对于前沿 …