zoukankan      html  css  js  c++  java
  • tensorflow入门代码分析

    import tensorflow as tf
    import numpy as np
    
    # 使用 NumPy 生成数据(phony data), 总共 100 个点.
    x_data = np.float32(np.random.rand(2, 100))     # 随机产生2行100列的数据
    y_data = np.dot([0.100, 0.200], x_data) + 0.300  # np.dot 返回的是两个矩阵的乘积,相当于tensorflow.matmul(a,b)
    
    # 构造一个线性模型
    #
    # tf.zeros(
    #     shape,
    #     dtype=tf.float32,
    #     name=None
    # )
    # shape代表多少维的数组,例如:tf.zeros([1]):一维的数组中放入一个元素,每个元素的值维0,数值类型是dtype,默认是float32,该操作的名称(可选)
    
    
    # tf.random_uniform(        # uniform:均匀的,一致的
    #     shape,
    #     minval=0,
    #     maxval=None,
    #     dtype=tf.float32,
    #     seed=None,
    #     name=None
    # )
    # 输出从均匀分布中输出随机值。shape是数据的形状,例如:[1,2]表示两个维度1*2个元素的矩阵。[2,3,4]表示三维的数据2*3*4个元素。
    # minval代表最小值(包括),maxval代表最大值(不包括),dtype是数据元素的类型,默认是float32
    # seed为随机的种子,相同的seed随机数相同,name为该操作的名字(可选),默认的没有名字
    #
    
    
    # 函数:tf.matmul  a*b矩阵相乘的值,a和b的类型必须相同,这里都是float32.且a和b的秩都大于等于2
    # matmul(
    #     a,
    #     b,
    #     transpose_a=False,    # 如果true,a乘法之前转置
    #     transpose_b=False,    # 如果true,a乘法之前转置
    #     adjoint_a=False,      # 如果true,a在乘法之前共轭和转置
    #     adjoint_b=False,      # 如果ture,b在乘法之前共轭和转置
    #     a_is_sparse=False,    # 如果true,a被视为稀疏矩阵,矩阵中含0元素比较多的时候,选择此优化.
    #     b_is_sparse=False,    # 如果true,b被视为稀疏矩阵,矩阵中含0元素比较多的时候,选择此优化.
    #     name=None
    # )
    
    b = tf.Variable(tf.zeros([1]))                          # Varible:变量
    W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))   # w的shape是:1*2,元素范围[-1.0, 1.0)
    y = tf.matmul(W, x_data) + b                            # x_data的shape是:2*100,
    
    # 最小化方差
    loss = tf.reduce_mean(tf.square(y - y_data))         # 方差
    optimizer = tf.train.GradientDescentOptimizer(0.5)   # 优化器,优化的粒度
    train = optimizer.minimize(loss)                     # 开始优化的形式
    
    # 初始化变量
    init = tf.initialize_all_variables()
    
    # 启动图 (graph)
    sess = tf.Session()     # 开启Session
    sess.run(init)          # 初始化所有变量
    
    # 拟合平面
    for step in range(0, 220):     # 训练多少次,这里训练1000次
        sess.run(train)            # 反复优化减小loss值
        if step % 20 == 0:         # 每20次输出一次结果
            print(step, sess.run(W), sess.run(b))
  • 相关阅读:
    五种提高 SQL 性能的方法
    join 使用详解方式
    关于MagicAjax的用法
    收藏几段SQL Server语句和存储过程
    ubuntu nfs配置 以及mount.nfs:access denied by server while mounting问题解决
    Hisi开发板上 SQLite3.3.8移植
    父进程非阻塞回收子进程(适用LINUX下C语言的clientserver模型)
    busybox asm/page.h: No such find.
    ubuntu11.10 samba服务器配置
    errno定义
  • 原文地址:https://www.cnblogs.com/smartmsl/p/10544265.html
Copyright © 2011-2022 走看看