• Tensorflow入门学习笔记汇总


    一、环境准备

    1、安装python:下载地址https://www.python.org/downloads/windows/下载并安装(推荐python3)

    2、安装对应python版本的库:https://www.lfd.uci.edu/~gohlke/pythonlibs/

    (1)Numpy库:

    (2)Tensorflow库:

    1. 测试安装:

    3、安装jdk:

    下载地址——https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    4、开发环境方法一使用elipse开发(推荐java版本,neon),直接解压到安装目录即可:

    ①下载地址——https://www.eclipse.org/downloads/packages/

    ②安装pydev插件——>运行Eclipse之后,选择help-->Install new Software——>点击Add,添加pydev:http://pydev.org/updates/

    5、开发环境方法二安装eclipse+pydev插件——>将带pydev插件的eclipse(eclipse-4.6.1-with-pydev.zip)解压即可。

    二、Tensorflow = Tensor(张量) + Flow(计算图)

    1、优势

      • 平台支持性良好,Windows, Linux, macOS等,IOS和Android;
      • 提供简单且灵活的Python API接口,内部使用C++进行优化;
      • 丰富的算子,可以很容易搭建各种深度学习模型,如CNN和RNN模型;
      • 提供可视化工具TensorBoard,这个是TF独有的优势;
      • 支持CPU和GPU,支持分布式多机多卡训练;

    2、张量(任意维度):

    (1)张量=shape+数据类型+名字

    (2)数据类型:

    ( 3 )几种常见创建张量的方法:

    a = tf.constant([1, 1, 1]) # 定义一个costant张量

    b = tf.zeros([2, 3], tf.int32) # [[0, 0, 0], [0, 0, 0]]

    c = tf.ones([2, 3], tf.int32) # [[1, 1, 1], [1, 1, 1]]

    d = tf.random_normal([5, 5], mean=0.0, stddev=1.0) # 均值为0,标准差为1的高斯分布

    e = tf.random_uniform([5, 5], minval=0, maxval=1) # [0, 1]内的均匀分布

    f = tf.placeholder(tf.int32, [3,]) # 定义一个占位张量

    (4)变量(有状态的张量,就是存储的实际值是可以被改变的)

    主要使用两个类:tf.Variable类和tf.train.Saver类。变量必须要先被初始化(initialize),而且可以在训练时和训练后保存(save)到磁盘中。之后可以再恢复(restore)保存的变量值来训练和测试模型。

    ①变量的声明:

    a = tf.Variable([[2, 3], [1, 2]])   # 初始值为[[2, 3], [1, 2]]

    b = tf.Variable((tf.zeros([10, 10])))  # 初始值为全0,shape为[10,10]的张量

    ②初始化:

    init = tf.global_variables_initializer() # 初始化所有变量的算子

    with tf.Session() as sess:

        sess.run(init)   # 执行初始化,此时变量被填值

    ③赋值:

    assign_op = a.assign(b) # a的值用b替换

    sess.run(assign_op)

    3、计算图

    由一系列节点(nodes)组成的图模型,每个节点对应的是TF的一个算子(operation),每个算子会有输入与输出,并且输入和输出都是张量。

    a = tf.constant(5) b = tf.constant(3) c = tf.multiply(a, b) d = tf.add(a, b)

    e = tf.add(c, d)

    4、定义一个模型:准备数据——>输入——>定义网络——>输出——>定义损失函数——>定义优化器——>定义精度——>启动TF训练——>模型保存和日志:

    (1)保存:

    sess = tf.Session()

    saver = tf.train.Saver()

    saver.save(sess, 'my-model',                           global_step=step,write_meta_graph=False)

    (2)加载:

    sess = tf.Session()

    saver.restore(sess, ‘my-model')

    (3)日志:

    生成计算图:writer = tf.summary.FileWriter('./log', sess.graph)

    生成张量图:

    tf.summary.scalar('loss', loss)

    merge_op = tf.summary.merge_all()

    merge_sum = sess.run([merge_op ], {tf_x: x, tf_y: y})

    writer.add_summary(merge_sum, step) 

    4、模型组成http://playground.tensorflow.org/

    模型    输入:数据——>隐藏层:1-n——>输出:y——>损失函数

    训练参数    Epoch——>Learning rate——>Activation——>Batch size

    5、几个概念:

    ①常用优化器(demo_gradient.py)

    GradientDescentOptimizer

    MomentumOptimizer

    RMSPropOptimizer

    AdamOptimizer(一般用这个)

    ②Dropout

    ③批量规范化

    • 正则化(L1,L2),L2也叫Weight_decay

    ⑤数据增强

    • 卷积神经网络

    卷积:卷积核大小——>步长——>滤波器(卷积核)个数——>padding

    池化:最大、最小、平均

    pool_size——>步长——>padding

    全连接

    参照学习:https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/

    本文为博主原创文章,未经博主允许禁止转载,需转载请注明出处,欢迎指正!
  • 相关阅读:
    QT5:类总结
    QT5:控件
    QT5:事件
    杂谈感想:致毛星云大佬
    QT5:3D
    QT5:其他问题
    QT5:文件
    iOS开发小技巧
    vs2010 学习Silverlight学习笔记(24):TransForm处理图片
    vs2010 学习Silverlight学习笔记(25):综合图片应用和《功夫之王》相册
  • 原文地址:https://www.cnblogs.com/caoer/p/12669190.html
Copyright © 2020-2023  润新知