Tensorflow细节-P89-collection的使用
知识总结
(1)再次注意summary的使用
(2)x = rdm.rand(dataset_size, 2) y_ = [[x1**2 + x2**2] for (x1, x2) in x]这里的问题要注意
(3)注意batch时,全部先按照一套W进行前向传播,这时候在进行正则化时,加的是同一套W,然后反向传播改变W值,进行下一轮前向传播
代码如下
import tensorflow as tf
import numpy as np
from numpy.random import RandomState
rdm = RandomState(1)
dataset_size = 128
x = rdm.rand(dataset_size, 2)
y_ = [[x1**2 + x2**2] for (x1, x2) in x]
def get_weight(shape, alpha, name):
with tf.variable_scope("get_variable" + name):
var = tf.get_variable(name, shape, tf.float32, initializer=tf.truncated_normal_initializer(0.01))
tf.add_to_collection("losses", tf.contrib.layers.l2_regularizer(alpha)(var))
return var
with tf.name_scope("generate_value"):
xs = tf.placeholder(tf.float32, [None, 2], name="x_input")
ys = tf.placeholder(tf.float32, [None, 1], name="y_output")
batch_size = 8
layers_dimension = [2 ,10, 10, 10 ,1]
n_layers = len(layers_dimension)
in_dimension = layers_dimension[0]
cur_layer = xs
for i in range(1, n_layers):
out_dimension = layers_dimension[i]
with tf.variable_scope("layer%d" % i):
weights = get_weight([in_dimension, out_dimension], 0.001, "layers")
biases = tf.get_variable("biases", [out_dimension], tf.float32, tf.constant_initializer(0.0))
cur_layer = tf.matmul(cur_layer, weights) + biases
cur_layer = tf.nn.relu(cur_layer)
in_dimension = layers_dimension[i]
with tf.name_scope("loss_op"):
mse_loss = tf.reduce_mean(tf.square(ys - cur_layer))
tf.add_to_collection("losses", mse_loss)
loss = tf.add_n(tf.get_collection("losses"))
tf.summary.scalar("loss", loss)
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
merged = tf.summary.merge_all()
init = tf.global_variables_initializer()
with tf.Session() as sess:
writer = tf.summary.FileWriter("path/", tf.get_default_graph())
sess.run(init)
for i in range(5000):
start = i*batch_size % dataset_size
end = min(start+batch_size, dataset_size)
if i % 50 == 0:
result = sess.run(merged, feed_dict={xs: x, ys: y_})
writer.add_summary(result, global_step=i)
if i % 500 ==0:
loss_op = sess.run(loss, feed_dict={xs: x, ys: y_})
print("After %d training, loss is %g" % (i, loss_op))
_ = sess.run(train_op, feed_dict={xs: x[start:end], ys: y_[start:end]})
writer.close()


Tensorflow细节-P89-collection的使用的更多相关文章
- 【原创】【Android】揭秘 ART 细节 ---- Garbage collection
背景 Dalvik :http://zh.wikipedia.org/wiki/Dalvik%E8%99%9A%E6%8B%9F%E6%9C%BA ART :http://source.andro ...
- Tensorflow细节-P312-PROJECTOR
首先进行数据预处理,需要生成.tsv..jpg文件 import matplotlib.pyplot as plt import numpy as np import os from tensorfl ...
- Tensorflow细节-P319-使用GPU基本的操作
如果什么都不加,直接运行装了GPU的Tensorflow,结果是这样子的 import tensorflow as tf a = tf.constant([1.0, 2.0, 3.0], shape= ...
- Tensorflow细节-P309-高维向量可视化
import matplotlib.pyplot as plt import tensorflow as tf import numpy as np import os from tensorflow ...
- Tensorflow细节-P309-监控指标可视化
注意下面一个点就ok了 with tf.name_scope('input_reshape'): # 注意看这里,图片的生成 image_shaped_input = tf.reshape(x, [- ...
- Tensorflow细节-P290-命名空间与tensorboard上的节点
讲解几个重点知识 1.对于tf.get_variable()中的reuse,意思是,如果有名字一模一样的变量,则对这个变量继续使用,如果没有名字一模一样的变量,则创建这个变量 2.options=ru ...
- Tensorflow细节-Tensorboard可视化-简介
先搞点基础的 注意注意注意,这里虽然很基础,但是代码应注意: 1.从writer开始后边就错开了 2.writer后可以直接接writer.close,也就是说可以: writer = tf.summ ...
- Tensorflow细节-P202-数据集的高层操作
本节是对上节的补充 import tempfile import tensorflow as tf # 输入数据使用本章第一节(1. TFRecord样例程序.ipynb)生成的训练和测试数据. tr ...
- Tensorflow细节-P199-数据集
数据集的基本使用方法 import tempfile import tensorflow as tf input_data = [1, 2, 3, 5, 8] # 这不是列表吗,为什么书里叫数组 da ...
- Tensorflow细节-P196-输入数据处理框架
要点 1.filename_queue = tf.train.string_input_producer(files, shuffle=False)表示创建一个队列来维护列表 2.min_after_ ...
随机推荐
- JAVAWEB实现增删查改(图书信息管理)之修改功能实现
首先通过点击index.jsp页面的修改按钮,获取该行的id:↓ 其次,跳转到updateBooks.jsp页面进行修改信息,页面代码如下:↓ <%@ page import="Boo ...
- epoll_ctl函数的使用
#include <sys/epoll.h> int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);作用: ...
- matlab 2017b 支持的C编译器
在电力电子开发领域,matlab是非常重要的工具,随着系统仿真和编程开发的不断融合,在matlab中使用混合编程并进行仿真验证,甚至是软件工程里面,源文件的自生成.编译以及一键程序下载等功能,都是越来 ...
- Build step 'Send files or execute commands over SSH' changed build result to UNSTABLE
删除logs文件夹日志即可
- Java线程设计模式(五)
多线程的设计模式:Future模式.Master-Worker模式,生产消费者模式 public interface Data { String getRequest(); } public clas ...
- vmware下的linux没有网络问题解决思路
这里几天一直在搞vm下的linux主机的网络问题,这里做个总结 这里使用的NAT连接方式 1.首先保证本机联网正常 2.检查虚拟机相应的服务(VMware NET Service 和 VMware W ...
- IDEA中搭建Maven环境
一.maven的作用 maven是一个构建项目的工具 从项目的创建(代码.配置文件.测试代码如何存放) --> 项目代码的编译 --> 测试 -->项目发布上线 做一整套约定和解决方 ...
- OC 组合实现多继承
OC无法完全先C++使用多继承,但可以采用组合的模式来代替继承模式.(协议实现)实现多继承的代码:举例现在ClassC需要继承ClassA中methodA.ClassB中methodB,具体的代码为: ...
- python多进程并发插入mysql数据
import pymysql import traceback from multiprocessing import Pool,Manager,cpu_count from multiprocess ...
- css选择符优先级