欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

tensorflow课程笔记(一)

程序员文章站 2022-05-25 16:13:22
...

 

MOOC上的tensorflow课程笔记

import tensorflow as tf
"""
a = tf.constant([1.0,2.0])   #一行两列的张量
b = tf.constant([3.0,4.0])   #一行两列的张量
result = a + b
print(result)                #打印计算图
结果为:Tensor("add:0", shape=(2,), dtype=float32)
        add操作,第0个开始计算(?),一维的张量,有两个值,类型都是float32
"""
"""
#计算图:搭建神经网络的计算过程,只搭建,不计算
#现在要搭建y=XW = x1*w1 + x2*w2 的计算图
x = tf.constant([[1.0,2.0]])   #一行两列的张量
w = tf.constant([[3.0],[4.0]]) #两行一列的张量
y = tf.matmul(x,w)             #张量相乘
print(y)
#计算结果:Tensor("MatMul:0", shape=(1, 1), dtype=float32)
with tf.Session() as sess:
    print(sess.run(y))
#计算结果:[[11.]]

"""
"""
生成变量
w = tf.Variable(tf.random_normal([2,3],stddev=2,mean=0,seed=1))
                [2,3] 产生2*3的矩阵  stddev标准差 mean均值 seed随机种子
                tf.random_normal 正态分布
                tf.random_uniform 平均分布
生成常量
tf.zeros 全零数组
tf.ones  全1数组
tf.fill  全定值数组
tf.constant 直接给值
"""
"""
神经网络实现过程:
1.准备数据集,提取特征,作为输入喂给神经网络
2.搭建NN结构,从输入到输出(先搭计算图,再用会话执行)
    NN前向传播算法-》计算输出
3.大量特征数据喂给NN,迭代优化NN参数
    NN反向传播算法-》优化参数训练模型
4.使用训练好的模型预测和分类
"""
"""
使用tf.placeholder占位符喂数据
喂一组数据
x = tf.placeholder(tf.float32,shape=[1,2])  #一行两列
sess.run(y,feed_dict={x:[[0.5,0.6]]})
喂多组数据
x = tf.placeholder(tf.float32,shape=[None,2])
sess,run(y,feed_dict={x:[0.1,0.2],[0.2,0.3],[0.3,0.4],[0.4,0.5]})
"""

简单的神经网络搭建

#coding:utf-8
#两层神经网络(全连接)
import tensorflow as tf

#定义输入和参数
#x = tf.constant([[0.7,0.5]])   #定义一行两列的张量
#用placeholder实现输入定义(sess.run中喂一组数据)
x = tf.placeholder(tf.float32,shape=[None,2])    #这样表示多行2列
w1 = tf.Variable(tf.random_normal([2,3], stddev=1, seed=1))  #正态分布
w2 = tf.Variable(tf.random_normal([3,1], stddev=1, seed=1))  #三行一列
"""
 w1= [[-0.8113182   1.4845988   0.06532937]
 [-2.4427042   0.0992484   0.5912243 ]]
 w2= [[-0.8113182 ]
 [ 1.4845988 ]
 [ 0.06532937]]
 w1就是输入到隐藏层的三个过程的权重
 w2就是隐藏层到输出层的三个过程的权重
"""
"""
x11 --  w1 a1 w2
        w1 a2 w2  -- y
x12 --  w1 a3 w2

"""


#定义前向传播过程
a = tf.matmul(x, w1)        #x乘以w1
y = tf.matmul(a, w2)

"""
a= [[-1.7892749   1.0888433   0.34134272]]
y= [[3.0904665]]

a11 = w1 11*x11 + w2 21*x12
a12 = w1 12*x11 + w2 22*x12
a13 = w1 13*x11 + w2 23*x13
"""

#用会话计算结果
with tf.Session() as sess:
    init_op = tf.global_variables_initializer()
    sess.run(init_op)
    #print("y in this file is:\n",sess.run(y))
    """
    print("w1=",sess.run(w1))
    print("w2=",sess.run(w2))
    print("a=",sess.run(a))
    print("y=",sess.run(y))
    """
    print("y=",sess.run(y,feed_dict={x:[[0.7,0.5],[0.3,0.2],[0.8,0.9]]}))
    """
    输出结果:
    y= [[3.0904665]
    [1.2935174]
    [4.2442317]]
    """

 

相关标签: tensorflow