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))
  • 相关阅读:
    发现个atan2的正确使用方式
    Forward+ Shading架构
    fatal: unable to connect to gitee.com: gitee.com[0: 180.97.125.228]: errno=Unknown error 解决方案
    HDFS HA(高可用性)集群规划
    如何使用RTP引擎对语音编码进行转码
    关于 Angular 应用 tsconfig.json 中的 target 属性
    浅谈 Orbeon form builder 的权限控制
    关于 Angular 应用 tsconfig.json 中的 lib 属性
    orbeon form 通过 url 的方式同第三方应用集成的开发明细
    orbeon form 的配置介绍
  • 原文地址:https://www.cnblogs.com/smartmsl/p/10544265.html
Copyright © 2011-2022 走看看