加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

前端人工智能:通过机器学习推导函数方程式--铂金Ⅲ

发布时间:2019-03-22 23:41:04 所属栏目:建站 来源:小蝌蚪
导读:什么是tensorflow.js tensorflow.js是一个能运行在赏识器和nodejs的一个呆板进修、呆板实习的javascript库,众所周知在赏识器上用javascript举办计较是很慢的,而tensorflow.js会基于WebGL通过gpu举办运算加快来对高机能的呆板进修模块举办加快运算,从而
副问题[/!--empirenews.page--]

 前端人工智能:通过呆板进修推导函数方程式--铂金Ⅲ

什么是tensorflow.js

tensorflow.js是一个能运行在赏识器和nodejs的一个呆板进修、呆板实习的javascript库,众所周知在赏识器上用javascript举办计较是很慢的,而tensorflow.js会基于WebGL通过gpu举办运算加快来对高机能的呆板进修模块举办加快运算,从而能让我们前端开拓职员能在赏识器中举办呆板进修和实习神经收集。本文要讲授的项目代码,就是要按照一些法则模仿数据,然后通过呆板进修和实习,按照这些数据去反向展望出天生这些数据的公式函数。

根基观念

接下来我们用五分钟过一下tensorflow的根基观念,这一部门首要先容一些观念,笔者会用一些类例如法简朴的报告一些观念,旨在辅佐各人快速领略,可是限于精神和篇幅,观念的详细具体界说读者们照旧多去参照官方文档。

张量(tensors)

张量着实就是一个数组,可以一维或多维数组。张量在tensorflow.js里就是一个数据单位。

  1. const tensors = tf.tensor([[1.0, 2.0, 3.0], [10.0, 20.0, 30.0]]);  
  2. tensors.print(); 

在赏识器里将会输出:

tensorflow还提供了语义化的张量建设函数:tf.scalar(建设零维度的张量), tf.tensor1d(建设一维度的张量), tf.tensor2d(建设二维度的张量), tf.tensor3d(建设三维度的张量)、tf.tensor4d(建设四维度的张量)以及 tf.ones(张量里的值满是1)可能tf.zeros(张量里的值满是0)。

变量(variable)

张量tensor是不行变的,而变量variable是可变的,变量是通过张量初始化而来,代码如下:

  1. const initialValues = tf.zeros([5]);//[0, 0, 0, 0, 0]  
  2. const biases = tf.variable(initialValues); //通过张量初始化变量  
  3. biases.print(); //输出[0, 0, 0, 0, 0] 

操纵(operations)

张量可以通过操纵符举办运算,好比add(加法)、sub(减法)、mul(乘法)、square(求平方)、mean(求均匀值) 。

  1. const e = tf.tensor2d([[1.0, 2.0], [3.0, 4.0]]);  
  2. const f = tf.tensor2d([[5.0, 6.0], [7.0, 8.0]]);  
  3. const ee_plus_f = e.add(f);  
  4. e_plus_f.print(); 

上面的例子输出:

内存打点(dispose和tf.tidy)

dispose和tf.tidy都是用来清空GPU缓存的,就相等于咱们在编写js代码的时辰,通过给这个变量赋值null来清空缓存的意思。

  1. var a = {num: 1};  
  2. a = null;//破除缓存 

dispose

张量和变量都可以通过dispose来清空GPU缓存:

  1. const x = tf.tensor2d([[0.0, 2.0], [4.0, 6.0]]);  
  2. const xx_squared = x.square();  
  3. x.dispose();  
  4. x_squared.dispose();  
  5. tf.tidy 

当有多个张量和变量的时辰,假如挨个挪用dispose就太贫困了,以是有了tf.tidy,将张量可能变量操纵放在tf.tidy函数中,就会自动给我们优化和破除缓存。

  1. const average = tf.tidy(() => {  
  2.   const y = tf.tensor1d([4.0, 3.0, 2.0, 1.0]);  
  3.   const z = tf.ones([1]);  
  4.   return y.sub(z);  
  5. });  
  6. average.print()  

以上例子输出:

模仿数据

起首,我们要模仿一组数据,按照 这个三次方程,以参数a=-0.8, b=-0.2, c=0.9, d=0.5天生[-1, 1]这个区间内一些有偏差的数据,数据可视化后如下:

假设我们并不知道a、b、c、d这四个参数的值,我们要通过这一堆数据,用呆板进修和呆板实习去反向推导出这个多项式函数方程的和它的a、b、c、d这四个参数值。

配置变量(Set up variables)

由于我们要反向推导出多项式方程的a、b、c、d这四个参数值,以是起首我们要先界嗣魅这四个变量,并给他们赋上一些随机数当做初始值。

  1. const a = tf.variable(tf.scalar(Math.random()));  
  2. const b = tf.variable(tf.scalar(Math.random()));  
  3. const c = tf.variable(tf.scalar(Math.random()));  
  4. const d = tf.variable(tf.scalar(Math.random())); 

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读