In [19]:
 
 
 
 
 
import tensorflow as tf
import numpy as np
# #简单的数据形网络
# #定义输入参数
# X=tf.constant(value=[[0.7,0.5]])
# W1=tf.Variable(tf.truncated_normal(shape=[2,3],mean=0,stddev=2))
# W2=tf.Variable(tf.truncated_normal(shape=[3,1],mean=0,stddev=2))
# #定义前向传播过程
# a=tf.matmul(X,W1)
# y=tf.matmul(a,W2)
# #变量初始化
# init=tf.global_variables_initializer()
# with tf.Session() as sess:
#     sess.run(init)
#     print("Y",sess.run(y))
    
#multiply是对应元素相乘,matul是矩阵相乘
# 定义网络变量
#s输入常亮
x_input=tf.placeholder(dtype=tf.float32,shape=[1,2],name="x_input")
#权重变量
W1=tf.Variable(tf.random_normal(shape=[2,3],mean=0,stddev=2))
W2=tf.Variable(tf.random_normal(shape=[3,1],mean=0,stddev=2))
#定义网络运算图
a=tf.matmul(x_input,W1)
Y=tf.matmul(a,W2)
#初始化全局变量
init=tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    result=sess.run(Y,feed_dict={x_input:[[0.7,0.5]]})
    print("result", result)
 
 
 
result [[-4.5023837]]

#在pycharm运行程序
import tensorflow as tf
import numpy as np BATCH_SIZE = 8 # 一次输入网络的数据,称为batch。一次不能喂太多数据
SEED = 23455 # 产生统一的随机数 rdm = np.random.RandomState(SEED)
X = rdm.rand(32, 2) i=0
Y=np.zeros((32,), dtype=np.int)
Y_=np.transpose([Y])
for (x0, x1) in X:
y=int(x0 + x1 < 1)
Y_[[i]]=y
i=i+1 print("X:\n", X)
print("Y_:\n",Y_) # 1定义神经网络的输入、参数和输出,定义前向传播过程。
x = tf.placeholder(tf.float32, shape=(None, 2))
y_ = tf.placeholder(tf.float32, shape=(None, 1)) w1 = tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1))
w2 = tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1)) a = tf.matmul(x, w1)
y = tf.matmul(a, w2) # 2定义损失函数及反向传播方法。
loss = tf.reduce_mean(tf.square(y - y_))
train_step = tf.train.GradientDescentOptimizer(0.001).minimize(loss) # 三种优化方法选择一个就可以 with tf.Session() as sess:
init = tf.global_variables_initializer()
sess.run(init)
# 输出目前(未经训练)的参数取值。
print("w1:\n", sess.run(w1))
print("w2:\n", sess.run(w2))
print("\n")
STEPS = 3000
for i in range(STEPS): #0-2999
start = (i * BATCH_SIZE) % 32
end = start + BATCH_SIZE
sess.run(train_step, feed_dict={x: X[start:end], y_: Y_[start:end]})
if i % 500 == 0:
total_loss = sess.run(loss, feed_dict={x: X, y_: Y_})
print("After %d training step(s), loss on all data is %g"%(i,total_loss))
print("\n")
print("w1:\n", sess.run(w1))
print("w2:\n", sess.run(w2)) #比较完整的一个网络

import tensorflow as tf
import numpy as np
batch_size=8
seed=23455

#制造一些假数据
rng=np.random.RandomState(seed)
X=rng.rand(32,2)
print(X)

Y=np.zeros(shape=(32,1),dtype=np.int)

Y=[[np.int(x0+x1<1)]for (x0,x1) in X]

print(Y)

#定义网络
x_input=tf.placeholder(shape=[None,2],dtype=np.float,name="input")
y_output=tf.placeholder(shape=[None,1],dtype=np.float,name="output")

#定义变量
W1=tf.Variable(tf.random_normal(shape=[2,3],stddev=1,seed=1))
W2=tf.Variable(tf.random_normal(shape=[3,1],stddev=1,seed=1))

#定义静态网络函数
a=tf.matmul(x_input,W1)
y=tf.matmul(a,W2)

#定义损失函数
loss=tf.reduce_mean(tf.square(y-y_output))
train_step=tf.train.GradientDescentOptimizer(0.001).minimize(loss)
#初始化变量
init=tf.global_variables_initializer()

with tf.Session() as sess:
sess.run(init)
print("W1:\n",W1)
#开始批量载入数据
for i in range(2000):
data_start=(i*batch_size)%32
data_end=data_start+batch_size
#开始训练数据
sess.run(train_step,feed_dict={x_input:X[data_start:data_end],y_output:Y[data_start:data_end]})
#每隔一段就打印出损失值
if ((i)%500==0):
Loss=sess.run(loss,feed_dict={x_input:X,y_output:Y})
print("loss",Loss)
print("w1",sess.run(W1))
print("W2",sess.run(W2))


tensorflow--建立一个简单的小网络的更多相关文章

  1. Hyperledger Fabric 建立一个简单网络

    Building you first network 网络结构: 2个Orgnizations(每个Org包含2个peer节点)+1个solo ordering service 打开fabric-sa ...

  2. 3.2 Lucene实战:一个简单的小程序

    在讲解Lucene索引和检索的原理之前,我们先来实战Lucene:一个简单的小程序! 一.索引小程序 首先,new一个java project,名字叫做LuceneIndex. 然后,在project ...

  3. 输出多行字符的一个简单JAVA小程序

    public class JAVA { public static void main(String[] args) { System.out.println("-------------- ...

  4. python -----一个简单的小程序(监控电脑内存,cpu,硬盘)

    一个简单的小程序 用函数实现!~~ 实现: cpu 使用率大于百分之50 时  ,  C 盘容量不足5 G 时, 内存 低于2G 时. 出现以上其中一种情况,发送自动报警邮件! 主要运用 到了两个 模 ...

  5. idea破解版安装、配置jdk以及建立一个简单的maven工程

    idea破解版安装.配置jdk,配置jdk环境变量以及建立一个简单的maven工程 一.idea破解版以及配置文件下载 下载网址:https://pan.baidu.com/s/1yojA51X1RU ...

  6. 通过myclipse建立一个简单的Hibernate项目(PS:在单元测试中实现数据的向表的插入)

    Hibernate的主要功能及用法: Ⅰ.Hibernate封装了JDBC,使Java程序员能够以面向对象的思想对数据库进行操作 Ⅱ.Hibernate可以应用于EJB的J2EE架构,完成数据的持久化 ...

  7. Python3的tkinter写一个简单的小程序

    一.这个学期开始学习python,但是看了python2和python3,最后还是选择了python3 本着熟悉python的原因,并且也想做一些小程序来增加自己对python的熟练度.所以写了一个简 ...

  8. 利用NET HUNTER建立一个自动文件下载的网络接入点

    免责声明:本文旨在分享技术进行安全学习,禁止非法利用. 本文中我将完整的阐述如何通过建立一个非常邪恶的网络接入点来使得用户进行自动文件下载.整个过程中我将使用 Nexus 9 来运行Kali NetH ...

  9. Django 学习笔记之六 建立一个简单的博客应用程序

    最近在学习django时建立了一个简单的博客应用程序,现在把简单的步骤说一下.本人的用的版本是python 2.7.3和django 1.10.3,Windows10系统 1.首先通过命令建立项目和a ...

随机推荐

  1. 6、mysql事务

    1.mysql事务 —mysql中,事务其实是一个最小的不可分割的工作单元.事务能够保证一个业务的完整性,例如:银行存款: a  - >    -100 >update user set ...

  2. SpringBoot 解决“不支持发行版本xx”的问题

    原因:很多地方都要配置jdk版本,某些地方配置的jdk版本不同.比如你要使用jdk8,某些地方配成了jdk7. 最常见配置错的地方:Ctrl+Shift+Alt+S 如果没问题,查看Project中的 ...

  3. Python数据分析在互联网寒冬下,数据分析师还吃香吗?

    伴随着移动互联网的飞速发展,越来越多用户被互联网连接在一起,用户所积累下来的数据越来越多,市场对数据方面人才的需求也越来越大,由此也带火了如数据分析.数据挖掘.算法等职业,而作为其中入门门槛相对较低. ...

  4. IOS 常用View属性设置

    设置按钮属性 1.设置按钮背景颜色 backgroundColor @property (weak, nonatomic) IBOutlet UIButton *deleteButton; self. ...

  5. android 根据res文件夹下(如res/raw)文件名获取其id

    android 根据res文件夹下(如res/raw)文件名获取其id //测试是否能够获取其资源ID int treeId = mv.getResources().getIdentifier(fil ...

  6. 前端学习笔记系列一:8 <noscript>…</noscript>,网站路径,vscode跳出右括号

    1.<noscript>…</noscript> 在body中使用此段代码,可识别 <script> 标签但无法支持其中的脚本的浏览器. 此段代码意思为如果浏览器不 ...

  7. Unity3D渲染优化技巧

    优化图形性能 良好的性能对大部分游戏的成功具有决定作用.下面是一些简单的指导,用来最大限度地提高游戏的图形渲染. 图形需要哪些开销 游戏的图形部分主要开销来自电脑的两个系统: GPU 或 CPU.优化 ...

  8. ZC706+FMCOMMS5应用笔记

    1.板载时钟配置. ZC706有200MHz LVDS差分时钟源SiT9102,作为ZYNQ系统参考时钟. COMMS5板子上有ADCLK846时钟Buffer分路器作为AD9361的时钟源,AD84 ...

  9. SciPy 插值

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

  10. SciPy 安装

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...