学习TensorFlow笔记

import tensorflow as tf

#定义变量
#Variable 定义张量及shape
w1= tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1))
w2= tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1))
with tf.Session() as sess:
print(sess.run(w1.initializer))
print(sess.run(w2.initializer))
#None
#None #打印张量,查看数据shape等信息
print(w1)
print(w2)
#<tf.Variable 'Variable:0' shape=(2, 3) dtype=float32_ref>
#<tf.Variable 'Variable_1:0' shape=(3, 1) dtype=float32_ref> #tf.constan是一个计算,结果为一个张量,保存在变量x中
x = tf.constant([[0.7, 0.9]])
print(x)
#Tensor("Const:0", shape=(1, 2), dtype=float32)
with tf.Session() as sess:
print(sess.run(x))
#[[ 0.69999999 0.89999998]] #定义前向传播的神经网络
#matmul做矩阵乘法
a = tf.matmul(x, w1) # x shape=(1, 2) w1 shape=(2, 3) print(a)
#Tensor("MatMul:0", shape=(1, 3), dtype=float32) y = tf.matmul(a, w2) #a shape=(1, 3) w2 shape=(3, 1)
print(y)
#Tensor("MatMul_1:0", shape=(1, 1), dtype=float32) #调用会话输出结果
with tf.Session() as sess:
sess.run(w1.initializer)
sess.run(w2.initializer)
print(sess.run(a))
#[[-2.76635647 1.12854266 0.57783246]]
print(sess.run(y))
#[[ 3.95757794]] #placeholder
x=tf.placeholder(tf.float32,shape=(1,2),name="input")
a=tf.matmul(x,w1)
y=tf.matmul(a,w2)
sess=tf.Session()
init_op=tf.global_variables_initializer()
sess.run(init_op) print(sess.run(y,feed_dict={x:[[0.8,0.9]]}))
#[[ 4.2442317]]
x = tf.placeholder(tf.float32, shape=(3, 2), name="input")
a = tf.matmul(x, w1)
y = tf.matmul(a, w2) sess = tf.Session()
#使用tf.global_variables_initializer()来初始化所有的变量
init_op = tf.global_variables_initializer()
sess.run(init_op) print(sess.run(y, feed_dict={x: [[0.7,0.9],[0.1,0.4],[0.5,0.8]]})) '''
[[ 3.95757794]
[ 1.15376544]
[ 3.16749239]]
'''

  整体神经网络的实现

import tensorflow as tf
from numpy.random import RandomState
#定义神经网络的参数,输入和输出节点
batch_size=8
#均值为0 方差为1 随机分布满足正态分布 shape为2*3
w1=tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
w2=tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1))
#shape 根据数据自动计算 batchsize个
x=tf.placeholder(tf.float32,shape=(None,2))
y_=tf.placeholder(tf.float32,shape=(None,1)) #定义前向传播过程,损失函数及反向传播算法 a=tf.matmul(x,w1)
y=tf.matmul(a,w2)
#损失函数 使用交叉熵
#优化方法使用AdamOptimizer
cross_entropy=-tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,1e-10,1.0)))
train_step=tf.train.AdamOptimizer(learning_rate=0.001).minimize(cross_entropy) rdm=RandomState(1)
#随机生成128个数据 shape 128*2
X=rdm.rand(128,2) #Y的值是模拟的 ,实际假设x2+x1如果大于1则标签Y为1 否则标签Y为0
Y=[[int(x1+x2<1)] for (x1,x2) in X] #创建一个会话 ,运算计算图
#全局初始化变量
STEPS = 5000
with tf.Session() as sess:
init_op=tf.global_variables_initializer()
sess.run(init_op)
# 输出目前(未经训练)的参数取值。
print("w1:", sess.run(w1))
print("w2:", sess.run(w2))
print("\n")
for i in range(STEPS):
start = (i * batch_size) % 128
end = (i * batch_size) % 128 + batch_size
sess.run(train_step, feed_dict={x: X[start:end], y_: Y[start:end]})
if i % 1000 == 0:
total_cross_entropy = sess.run(cross_entropy, feed_dict={x: X, y_: Y})
print("After %d training step(s), cross entropy on all data is %g" % (i, total_cross_entropy))
# 输出训练后的参数取值。
print("\n")
print("w1:", sess.run(w1))
print("w2:", sess.run(w2)) ''' w1: [[-0.81131822 1.48459876 0.06532937]
[-2.4427042 0.0992484 0.59122431]]
w2: [[-0.81131822]
[ 1.48459876]
[ 0.06532937]] After 0 training step(s), cross entropy on all data is 0.0674925
After 1000 training step(s), cross entropy on all data is 0.0163385
After 2000 training step(s), cross entropy on all data is 0.00907547
After 3000 training step(s), cross entropy on all data is 0.00714436
After 4000 training step(s), cross entropy on all data is 0.00578471 w1: [[-1.96182752 2.58235407 1.68203771]
[-3.46817183 1.06982315 2.11788988]]
w2: [[-1.82471502]
[ 2.68546653]
[ 1.41819501]] Process finished with exit code 0
'''

  

简单神经网络TensorFlow实现的更多相关文章

  1. day-19 多种优化模型下的简单神经网络tensorflow示例

    如下样例基于tensorflow实现了一个简单的3层深度学习入门框架程序,程序主要有如下特性: 1.  基于著名的MNIST手写数字集样例数据:http://yann.lecun.com/exdb/m ...

  2. ubuntu之路——day12.1 不用tf和torch 只用python的numpy在较为底层的阶段实现简单神经网络

    首先感谢这位博主整理的Andrew Ng的deeplearning.ai的相关作业:https://blog.csdn.net/u013733326/article/details/79827273 ...

  3. Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序

    由于最近比较忙,一直到假期才有空,因此将自己学到的知识进行分享.如果有不对的地方,请指出,谢谢!目前深度学习越来越火,学习.使用tensorflow的相关工作者也越来越多.最近在研究tensorflo ...

  4. day-11 python自带库实现2层简单神经网络算法

    深度神经网络算法,是基于神经网络算法的一种拓展,其层数更深,达到多层,本文以简单神经网络为例,利用梯度下降算法进行反向更新来训练神经网络权重和偏向参数,文章最后,基于Python 库实现了一个简单神经 ...

  5. python视频 神经网络 Tensorflow

    python视频 神经网络 Tensorflow 模块 视频教程 (带源码) 所属网站分类: 资源下载 > python视频教程 作者:smile 链接:http://www.pythonhei ...

  6. TensorFlow初探之简单神经网络训练mnist数据集(TensorFlow2.0代码)

    from __future__ import print_function from tensorflow.examples.tutorials.mnist import input_data #加载 ...

  7. tensorflow学习之(五)构造简单神经网络 并展示拟合过程

    # def 添加层 如何构造神经网络 并展示拟合过程 import tensorflow as tf import numpy as np import matplotlib.pyplot as pl ...

  8. 吴裕雄 python 神经网络——TensorFlow 三层简单神经网络的前向传播算法

    import tensorflow as tf w1= tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1)) w2= tf.Variable( ...

  9. 使用RStudio学习一个简单神经网络

    数据准备 1.收集数据 UC Irvine Machine Learning Repository-Concrete Compressive Strength Data Set 把下载到的Concre ...

随机推荐

  1. perl模块终极解决方案--转载

    不管别人怎么说,反正我是非常喜欢perl语言的! 也会继续学习,以前写过不少perl模块的博客,发现有点乱,正好最近看到了关于local::lib这个模块. 居然是用来解决没有root权限的用户安装, ...

  2. 使用 for 循环

    for 循环通过迭代一个给定向量或列表,重复执行某个表达式.for 循环的语法是这样的:for (var in vector) {expr}var 遍历 vector 中的各个元素值,expr 被反复 ...

  3. QtWebKit_cookie

    1.百度搜索“qtwebkit cookie” 2. 2.1.qtwebkit 里 cookie 信息的保存 http://blog.tianya.cn/post-227188-33378112-1. ...

  4. charles抓取https中出现unknow

    http正常抓包,https则出现unknown 1.安装证书 Help->SSL Proxying->Install Charles Root Certificate 但是!!!装完并没 ...

  5. C++常考面试题

    1 new/delete 与 malloc/free的区别 运算符是语言自身的特性,有固定的语义,编译器知道意味着什么,由编译器解释语义,生成相应的代码. 库函数是依赖于库的,一定程度上独立于语言的. ...

  6. Spring Boot 整合Swagger2构建API文档

    1.pom.xml中引入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>spri ...

  7. gradle基础配置

    gradle构建脚本基础 gradle常用命令 //列出项目的所有属性. 这样你就可以看到插件加入的属性以及它们的默认值. gradle properties ​ //列出项目的所有任务 gradle ...

  8. 【LeetCode 232_数据结构_队列_实现】Implement Queue using Stacks

    class Queue { public: // Push element x to the back of queue. void push(int x) { while (!nums.empty( ...

  9. 201621123005《java程序设计》第五周学习总结

    201621123005<Java程序设计>第五周实验总结 1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 接口.多态.inferface.has-a.Compar ...

  10. Java中的HashMap的工作原理是什么?

    问答题23 /120 Java中的HashMap的工作原理是什么? 参考答案 Java中的HashMap是以键值对(key-value)的形式存储元素的.HashMap需要一个hash函数,它使用ha ...