Coder Social home page Coder Social logo

tensorflow-learning's People

Contributors

alasq avatar

Watchers

 avatar  avatar

tensorflow-learning's Issues

tensorflow入门

TensorFlow基本概念

  • Tensor 是张量的意思,简单的理解成多维数组就好了。
  • Flow 就是神经网络的那个图

tensorflow主要有三个模型

计算模型--计算图

定义张量之间如何去运算,程序会自动维护一个默认的计算图。如果定义了多个计算图,图之间的张量互不干扰。
TensorBoard是TensorFlow的可视化工具,可以形象的看到计算图。

数据模型--张量

张量其实就是一个多维数组,二维数组就是矩阵了。

运行模型--会话

会话是用来执行定义好的运算的

# 创建会话
sess=tf.Session()
# 执行会话,得到计算结果
sess.run(...)
# 结束会话,释放资源
sess.close()

TensorFlow实现神经网络

https://playground.tensorflow.org/ playground(游乐场)在浏览器中有一个最简单的神经网络模型,能够可视化训练过程,可以帮助我们理解神经网络这个概念。
image

使用神经网络解决分类问题,大致分为四步

  1. 提取问题中实体的特征向量,作为神经网络的输入
  2. 定义神经网络结构,并定义如何从神经网络的输入得到输出。这个过程就是神经网络的前向传播算法。
  3. 通过训练数据来调整神经网络中参数的取值,这就是神经网络的过程
  4. 使用训练好的神经网络来预测位置的数据。这个过程与步骤二的前向神经算法一致。

一句话概括tensorflow游乐场中的概念(其实也就是深度学习中的概念)

  1. 学习率
    深度学习的过程其实就是获取各个神经节点最佳权重的过程,以结果为向导,微调权重,以获得更好的学习效果。学习率确定如何微调权重。
  2. 激活函数与偏置项(bias)
    一个神经节点会把上一层的多个神经节点与偏置项加权运算的结果,通过激活函数运算后传递给下一个神经节点。用于解决一些非线性关系的问题。
  3. 正则化
    正则就是检索匹配某个正确的模式与规则。 为了简化神经网络模型,神经网络系统会确定一个丢失函数,用正确的规则去验证某个神经节点,匹配不上就干掉。 正则化用于丢失函数上,让丢失函数更能达到我们预期的效果。
    L1 正则化: 会将权重减小一个常量
    L2 正则化: 会将权重减小一个比率
  4. 正则化率
    给正则化用的参数
  5. 问题类型
    分类问题 : 数据分部在两个不同的区域内
    回归问题 : 数据分部在一条线上
  6. 损失函数
    神经网络的效果以及优化目标是通过损失函数来定义的

损失函数

经典损失函数

在解决多分类问题,我们会设置n个输出节点,理想状态下,我们识别一个样本数据类别k,那么这个类型的节点输出是1,其他节点输出是0,整体输出应该类似[0,1,0,0,0,0,0,0] ,而实际输出应该都是0到1之间的数。
原始结果肯定有不在0到1之间的。我们通过 softmax回归层把输出变换到0到1之间

分类问题一般采用交叉熵作为损失函数

交叉熵刻画的是两个概率分布之间的距离
H((1,0,0),(0.5,0.4,0.1))=-(0*log0.5+1*log0.4+0*log0.1)≈0.3

cross_entropy= -tf.reduce_mean(y_ * tf.log(tf.clip_by_value(y,1e-10,1.0)))

tf.clip_by_value(y,1e-10,1.0) 函数y里面的值,转换成1e-10 到1.0 之间的值
tf.log(x) 将x取对数
tf.reduce_mean 相加

回归问题一般采用 均方误差 MES (mean squared error)作为损失函数

自定义损失函数

假如预测商品销量,预测值比实际值多的话,会损失商品的成本,预测值比实际值少的话,就是损失销量。假设成本是10元,销售利润是1元。

用tf来标识这个自定义的损失函数

loss=tf.reduce_sum(tf.where(
tf.greater(v1,v2),
(v1-v2)*a,
(v2-v1)*b
))

安装tensorflow

安装 Anaconda

python的发行版,除了python,还包含了很多常用的关于科学计算的库 。
我参考这篇文章安装成功的 https://www.cnblogs.com/ljysy/p/10660885.html
我这里下载的是 Anaconda 版本是 Anaconda3-5.3.1-Windows-x86_64.exe 对应的 python3.7.0

  1. conda create -n tensorflow python=3.7.0 创建了一个独立的tensorflow的工作空间,在这个空间内使用的python版本为3.7.0
  2. conda activate tensorflow 激活这个名为tensorflow空间
  3. pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 在空间内配置pip的镜像源
  4. pip install tensorflow

Anaconda + vscode 配置

https://www.jianshu.com/p/ef1ae10ba950

如果提示pip的版本过低,就使用下面的命令升级pip

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U

code-runner 输出乱码

参考这个文章解决 https://www.cnblogs.com/zhaoshizi/p/9050768.html

在项目下 .vscode/settings.json 配置python的路径以及 code-runner的执行路径,设置成全局的也行吧

{
  "python.pythonPath": "F:\\ProgramData\\Anaconda3\\envs\\tensorflow",
  "code-runner.executorMap": {
    "python": "set PYTHONIOENCODING=utf8 && F:\\ProgramData\\Anaconda3\\envs\\tensorflow\\python.exe",
  },
}

验证

试下tensorflow官网的例子,能跑起来就是成功了。有时候下载测试数据集的时候会失败,多试几次就好了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.