/Tensorflowjs-Learn

Tensorflowjs学习

Primary LanguageJavaScriptMIT LicenseMIT

Tensorflow.js机器学习

1. Tensor是什么

2. 线性回归

  • 定义模型结构
  • 损失函数
  • 优化器:随机梯度下降
  • 训练模型
  • 进行预测

3. 归一化

  • 归一化任务
  • 归一化训练数据
  • 训练、预测、反归一化

4.逻辑回归:输出的是概率

  • 逻辑回归任务
  • 加载二分数据
  • 定义模型结构:带有激活的数的单个神经元
  • 损失函数:对数损失log loss
  • 训练模型并可视化训练过程
  • 进行预测
  • 二分类数据集生成函数

5. 多层神经网络

  • 多层神经网络任务
  • 加载XOR数据集(XOR异或逻辑回归)
  • 定义数据模型:多层神经网络
  • 训练模型并预测

6.多分类

  • 多分类任务
  • 加载iris数据集(训练集和验证集)
  • 定义模型结构:带有softmax的多层神经网络
  • 训练模型:交叉熵损失函数与准确度度量
  • 定义分类预测方法

7.欠拟合与过拟合

  • 欠拟合与过拟合任务
  • 加载带有噪音的二分类数据
  • 简单神经网络演示欠拟合
  • 复杂神经网络演示过拟合
  • 过拟合应对法:早停法、权重衰减、丢弃法

8.卷积神经网络CNN识别手写数字: 卷积层(提取特征)、池化层(提取最强的特征)、全连接层(dense作为输出层、作为分类器)

  • 使用卷积神经网络识别手写数字任务
  • 加载MNIST数据集
  • 定义模型结构:卷积神经网络
  • 训练模型
  • 进行预测

9.预训练模型进行图片分类

  • 预训练模型进行图片分类任务
  • 加载MobileNet模型(MobileNet是一种卷积神经网络)
  • 进行预测

预训练模型:

已经事先训练好的模型,无需训练即可预测

tensorflow.js中可以调用web格式的模型文件

10.迁移学习的图片分类器

  • 基于迁移学习的图像分类器:商标识别任务
  • 加载商标训练数据并可视化
  • 定义模型结构:截断模型+双层神经网络
  • 迁移学习下的模型训练
  • 迁移学习下的模型预测

迁移学习:

把已训练好的模型参数迁移到新的模型来帮助新模型的训练

深度学习模型参数多,从头训练成本高

删除原始模型的最后一层,基于此截断模型的输出训练一个新的(通常相当浅的)模型

11.基于预训练模型或迁移学习进行语音识别

加载预训练语音识别模型(Tensorflow官方)

使用tfjs-models的speech-commands包加载模型

迁移学习:声控轮播图

12. python模型与js模型互转:

  • python模型:通过python版Tensorflow/keras生成模型

  • python模型包括:Tensorflow SavedModel、Keras HDF5 model等

  • 获取:开源网站下载/算法同事提供

  • js模型包括:tfjs_layers_model、tfjs_graph_model等

  • 获取:通过开源网站/通过TFJS生成/由Python模型转化而来

怎么互转:

  1. 安装tensorflow.js Converter
  2. 在命令行指定输入输出的路径和模型格式即可。

python与js互转、js模型的互转:分片、量化、加速