浏览器端的机器学习 tensorflowjs(3) 加载 2D
2021-06-25 本文已影响0人
zidea
cover_002.png
现在你已经创建了 HTML 和 JavaScript文件,当在浏览器中打开 index.html 文件,并打开devtools 控制台。
- tf 是对 TensorFlow.js 库的引用
- tfvis 是对 tfjs-vis 库的引用。
安装好 Tensorflow 后第一步就是加载数据,对数据进行格式化和可视化,我们想要训练模型的数据。
加载数据
读取 JSON 文件来加载 汽车数据集,已经为你托管了这个文件。包含了关于每辆汽车的许多不同特征。在分享中,只想提取有关马力和mpg每加仑英里的数据。
async function getData() {
const carsDataResponse = await fetch('https://storage.googleapis.com/tfjs-tutorials/carsData.json');
const carsData = await carsDataResponse.json();
const cleaned = carsData.map(car => ({
mpg: car.Miles_per_Gallon,
horsepower: car.Horsepower,
}))
.filter(car => (car.mpg != null && car.horsepower != null));
return cleaned;
}
加载数据后,对出原始数据进行适当处理,也可以理解为对数据的将 Miles_per_Gallon 转换为 mpg 字段,而 Horsepower 转换为 horsepower 字段,并且过滤调用这些字段为空(null)数据。
2D 数据可视化
到现在,你应该在页面的左侧看到一个面板,上面有一个数据的散点图。它看起来应该是这样的。
async function run() {
// 加载数据
const data = await getData();
// 处理原始数据,将数据 horsepower 映射为 x 而 mpg 则映射为 y
const values = data.map(d => ({
x: d.horsepower,
y: d.mpg,
}));
// 将数据以散点图形式显示在开发者调试工具
tfvis.render.scatterplot(
{name: 'Horsepower v MPG'},
{values},
{
xLabel: 'Horsepower',
yLabel: 'MPG',
height: 300
}
);
}
document.addEventListener('DOMContentLoaded', run);
这部分代码如果用过 matplot 朋友应该不陌生,就是在 devtool 工具中绘制一个图像将数据以更直观方式显示出来,其实 name 为图标的标题,values 为数据通常 x 和 y 坐标值,而 xLabel 表示 x 轴的坐标 yLabel 表示 y 轴的坐标
tfvis.render.scatterplot(
{name: 'Horsepower v MPG'},
{values},
{
xLabel: 'Horsepower',
yLabel: 'MPG',
height: 300
}
);
截屏2021-06-25上午11.01.49.png
个人对如何在 devtool 绘制图标还是比较感兴趣,有时间也想自己搞一搞。