四时宝库

程序员的知识宝库

Tensorflow好差劲!(tensorflow 缺点)

作者简介:Nico Jimenez开发了Mathpix(https://mathpix.com),这种图形处理API每个月为全球各地的数百万用户处理 2000万个图像。他还开发了Losswise(https://losswise.com),他在Mathpix公司开发的这种内部机器学习监控和分析解决方案已向公众开放。

TensorFlow 模型中的回调函数与损失函数

回调函数

tf.keras 的回调函数实际上是一个类,一般是在 model.fit 时作为参数指定,用于控制在训练过程开始或者在训练过程结束,在每个 epoch 训练开始或者训练结束,在每个 batch 训练开始或者训练结束时执行一些操作,例如收集一些日志信息,改变学习率等超参数,提前终止训练过程等等。同样地,针对 model.evaluate 或者 model.predict 也可以指定 callbacks 参数,用于控制在评估或预测开始或者结束时,在每个 batch 开始或者结束时执行一些操作,但这种用法相对少见。

深入理解tensorflow的session和graph

tensorflow的graph示例

tensorflow作为一个基于图结构的深度学习框架,内部通过session实现图和计算内核的交互,那么这个图是什么样的结构,session的工作原理又是什么样的呢?我们通过几段代码来深入理解一下

使用TensorFlow v2库实现线性回归

使用TensorFlow v2库实现线性回归

此示例使用简单方法来更好地理解训练过程背后的所有机制

from __future__ import absolute_import, division, print_function
import tensorflow as tf
import numpy as np
rng = np.random
# 参数
learning_rate = 0.01
training_steps = 1000
display_step = 50
# 训练数据
X = np.array([3.3,4.4,5.5,6.71,6.93,4.168,9.779,6.182,7.59,2.167,
 7.042,10.791,5.313,7.997,5.654,9.27,3.1])
Y = np.array([1.7,2.76,2.09,3.19,1.694,1.573,3.366,2.596,2.53,1.221,
 2.827,3.465,1.65,2.904,2.42,2.94,1.3])
n_samples = X.shape[0]
# 随机初始化权重,偏置
W = tf.Variable(rng.randn(),name="weight")
b = tf.Variable(rng.randn(),name="bias")
# 线性回归(Wx+b)
def linear_regression(x):
 return W * x + b
# 均方差
def mean_square(y_pred,y_true):
 return tf.reduce_sum(tf.pow(y_pred-y_true,2)) / (2 * n_samples)
# 随机梯度下降优化器
optimizer = tf.optimizers.SGD(learning_rate)
# 优化过程
def run_optimization():
 # 将计算封装在GradientTape中以实现自动微分
 with tf.GradientTape() as g:
 pred = linear_regression(X)
 loss = mean_square(pred,Y)
 
 # 计算梯度
 gradients = g.gradient(loss,[W,b])
 
 # 按gradients更新 W 和 b
 optimizer.apply_gradients(zip(gradients,[W,b]))
# 针对给定训练步骤数开始训练
for step in range(1,training_steps + 1):
 # 运行优化以更新W和b值
 run_optimization()
 
 if step % display_step == 0:
 pred = linear_regression(X)
 loss = mean_square(pred, Y)
 print("step: %i, loss: %f, W: %f, b: %f" % (step, loss, W.numpy(), b.numpy()))

EffectiveTensorFlowChapter6——在TensorFlow中利用运算符重载

本文翻译自: , 如有侵权请联系删除,仅限于学术交流,请勿商用。如有谬误,请联系指出。

和 Numpy 一样,为了使代码可读性更强,更容易绘制一个计算图,TensorFlow重载了很多python中的运算符。

Tensorflow构建RNN做时间序列预测

最近比较空闲,刚好学习下Tensorflow和python,于是想写一个Tensorflow的小应用。

时间序列预测在预估企业营收,指标等方面使用的非常多。以前用R写过一个shiny的应用,就是用指数平滑、stl分解等方法做时间序列预测。RNN也是很早之前就接触过理论,是用来处理序列数据的利器。放一个普通RNN的示意图:

由浅入深地带你了解分析张量(张量分析简论)

神经网络的输入、输出、权重都是张量,神经网络中的各种计算和变换就是对张量操作,张量这种数据结构是神经网络的基石,可以说没有理解张量就没有真正理解神经网络和人工智能。本文由浅入深地详细讲解分析张量,望能给予读者启发——袁宵。

张量的定义

张量(tensor)是一个多维数组(multidimensional arrays),即一种存储数字集合的数据结构,这些数字可通过索引(index)单独访问,并可通过多个索引进行索引。

Tensorflow中的基本用法(tensorflow中的tensor)

x=tf.linspace(-3.0,3.0,100),tf.linspace()称为操作,任何一次操作的结果都得到Tensor

print(x) 输出:Tensor("LinSpace:0", shape=(100,), dtype=float32)返回值是一个Tensor,不是数值,其中"LinSpace:0"是Tensor的名字,表示LinSpace空间的第0个输出!

TensorFlow estimator详细介绍,实现模型的高效训练

?estimator是tensorflow高度封装的一个类,里面有一些可以直接使用的分类和回归模型,例如tf.estimator.DNNClassifier,但这不是这篇博客的主题,而是怎么使用estimator来实现我们自定义模型的训练。它的步骤主要分为以下几个部分:

  1. 构建

TensorFlow可微编程实践——1.2微分计算详解

在这一节里面,我们将带大家一起复习一下高等数学中的微分知识,同时向大家通过程序求微分的四种主要方法,使大家对自动微分在今后深度学习和人工智能中的重要性有一个感性的认识。

在程序中求导数和微分一般有四种方式:

1. 手动求微分:采用纯人工方式,与计算机无关,这种我们不进行讨论

2. 数值方法:这种方式利用导数的定义,直接求解微分值

<< < 1 2 3 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接