zoukankan      html  css  js  c++  java
  • Tensorflow 学习笔记

    # 在用tensorflow前先打开
    $ source ~/tensorflow/bin/activate

    # 激活后会有标识
    (tensorflow)$

    #用完后关闭
    (tensorflow)$ deactivate

    # 删除tensorflow
    $ rm -r ~/tensorflow

    1.  Getting Started With Tensorflow

      Tensorflow的基本单元是张量(tensor),张量的阶(rank)是它的维度(the number of dimension)。

      

      Tensorflow由一系列运算图(computational graph)组成。点有多种类型,包括常数(constant)、变量(variable)。

      

      要操作computational graph中的node,要用到session。

    sess = tf.Session()
    print(sess.run([node1, node2]))

      可视化: TensorBoard可以用来表现computational graph。

      

      用placeholder可以完成类似函数(function)的功能

    a = tf.placeholder(tf.float32)
    b = tf.placeholder(tf.float32)
    adder_node = a + b # + provides a shortcut for tf.add(a, b)

    print(sess.run(adder_node, {a: 3, b: 4.5}))

      利用变量(variables)给节点添加参数

    2. Deep MNIST for Experts

    InteractiveSession class is more convenient and flexible.

    import tensorflow as tf
    sess = tf.InteractiveSession()

    Placeholders with shape argument can automatically catch bugs regarding on manipulation on inconsistent tensor shape.

    x = tf.placeholder(tf.float32, shape=[None, 784])  # None means that the number of sample is variable and the length of each sample is 784 (28 * 28)

     包含Deep convolutional neural networks的使用教程。

    3. Read Data

    batchsize: 每次训练在训练集中取得样本数

    iteration: 使用batchsize个样本训练一次

    epoch: 使用训练集中的全部样本训练一次

    # 读入的数据以列表存储
    filename = []
    # tf.train.string_input_producer() 产生一个文件名队列
    filename_queue = tf.train.string_input_producer(filename, shuffle=False, num_epochs=5)# reader从文件名队列中读数据。对应的方法是reader.read
    reader = tf.WholeFileReader()
    key, value = reader.read(filename_queue)
    # tf.train.string_input_producer定义了一个epoch变量,要对它进行初始化
    tf.local_variables_initializer().run()
    # 使用start_queue_runners之后,才会开始填充队列
    threads = tf.train.start_queue_runners(sess=sess)

    详见: http://blog.csdn.net/buptgshengod/article/details/72956846

    numpy

    import numpy as np
    np.loadtext(c)  # return ndarray
    np.ones() # return a new array of given shape and type, filled with ones
    i = 1 * 10 ** (-10) # ** means power, and its priority is higher than *
    np.eye(3, dtype = int) # diagonal matrix, consist of 0 and 1
    vector = np.hstack((vector, temp)) # concatenation along the second axis (horizontally in 2 dimension)
    np.save(filename, array, fmt = '%d') # save the data of int format

    4. make hand dirty

    numpy一位数组转置只需要操作shape

    array_1d = np.array([1, 2])  
    array_1d.shape = (2, 1)  # finished
    
    array_2d.transpose()  # 二维数组的转置方法

    python assert断言是声明其布尔值必须为真的判定

    assert len(lists) >=5  # 若为假则触发异常

     使用名称前的单下划线,用于指定该名称属性为“私有”,其只供内部使用。 (_spam)

     collections是一个集合模块,提供许多有用的集合类,如namedtuple(提供一个列表的集合类)

    >>> from collections import namedtuple
    >>> Point = namedtuple('Point', ['x', 'y'])
    >>> p = Point(1, 2)
    >>> p.x
    1
    >>> p.y
    2

     5. Model  

      strides 中的四个参数,第一个是 the number of images,第二个是 the height of images,第三个是 the width of images,第四个是 the number of channel

      小白学Tensorflow之卷积神经网络 https://www.jianshu.com/p/70c8d6663b00
      深入MNIST http://www.tensorfly.cn/tfdoc/tutorials/mnist_pros.html
      Batch Normalization 批标准化 https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/5-13-BN/
      martin-gorner/tensorflow-mnist-tutorial (batch normalization)https://github.com/martin-gorner/tensorflow-mnist-tutorial

    6. 求AUC

    import tensorflow as tf
    
    a = tf.Variable([0.1, 0.5])
    b = tf.Variable([0.2, 0.6])
    
    auc = tf.contrib.metrics.streaming_auc(a, b)
    
    sess = tf.Session()
    sess.run(tf.initialize_all_variables())
    sess.run(tf.initialize_local_variables()) # try commenting this line and you'll get the error
    train_auc = sess.run(auc)
    
    print(train_auc)

    https://stackoverflow.com/questions/39435341/how-to-calculate-auc-with-tensorflow

     7. 可视化 (好)

    Tensorflow的可视化工具Tensorboard的初步使用

    https://blog.csdn.net/mao_feng/article/details/54731098

    tensorflow + mnist + cnn + batch normalization

    https://github.com/hwalsuklee/tensorflow-mnist-cnn

    8. 过拟合情况及解决

    dropout https://blog.csdn.net/smf0504/article/details/55254818

    batch normalization https://blog.csdn.net/whitesilence/article/details/75667002

    slim cnn 代码 https://www.2cto.com/kf/201706/649266.html

    9.论文写法

    https://blog.csdn.net/fengbingchun/article/details/50529500 cnn 结构

     
  • 相关阅读:
    centos7.6 安装与配置 MongoDB yum方式
    MongoDB 介绍
    centos 关闭selinux
    前端 HTML标签属性
    前端 HTML 标签嵌套规则
    前端 HTML 标签分类
    前端 HTML body标签相关内容 常用标签 表单标签 form里面的 input标签介绍
    前端 HTML body标签相关内容 常用标签 表单标签 form 表单控件分类
    前端 HTML form表单标签 select标签 option 下拉框
    POJ 1426
  • 原文地址:https://www.cnblogs.com/waynelin/p/8320368.html
Copyright © 2011-2022 走看看