tensorflow1.0 dropout层
2024-10-21 09:29:04
"""
Please note, this code is only for python 3+. If you are using python 2+, please modify the code accordingly.
"""
import tensorflow as tf
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelBinarizer # load data
digits = load_digits()
X = digits.data
y = digits.target
y = LabelBinarizer().fit_transform(y)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.3) def add_layer(inputs, in_size, out_size, layer_name, activation_function=None, ):
# add one more layer and return the output of this layer
Weights = tf.Variable(tf.random_normal([in_size, out_size]))
biases = tf.Variable(tf.zeros([1, out_size]) + 0.1, )
Wx_plus_b = tf.matmul(inputs, Weights) + biases
# here to dropout
Wx_plus_b = tf.nn.dropout(Wx_plus_b, keep_prob)
if activation_function is None:
outputs = Wx_plus_b
else:
outputs = activation_function(Wx_plus_b, )
return outputs def compute_accuracy(v_xs,v_ys,v_keep_prob):
global prediction
y_pre = sess.run(prediction,feed_dict={xs:v_xs,keep_prob:v_keep_prob})
correct_prediction = tf.equal(tf.argmax(y_pre,1),tf.argmax(v_ys,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
result = sess.run(accuracy,feed_dict={xs:v_xs,ys:v_ys,keep_prob:v_keep_prob})
return result # define placeholder for inputs to network
keep_prob = tf.placeholder(tf.float32)
xs = tf.placeholder(tf.float32, [None, 64]) # 8x8
ys = tf.placeholder(tf.float32, [None, 10]) # add output layer
l1 = add_layer(xs, 64, 50, 'l1', activation_function=tf.nn.tanh)
prediction = add_layer(l1, 50, 10, 'l2', activation_function=tf.nn.softmax) # the loss between prediction and real data
cross_entropy = tf.reduce_mean(-tf.reduce_sum(ys * tf.log(prediction),
reduction_indices=[1])) # loss
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) sess = tf.Session()
sess.run(tf.initialize_all_variables()) for i in range(500):
# here to determine the keeping probability
sess.run(train_step, feed_dict={xs: X_train, ys: y_train, keep_prob: 0.5})
if i % 50 == 0:
print(compute_accuracy(X_train, y_train,1),compute_accuracy(X_test, y_test,1))
最新文章
- Linux下UPnP sample分析
- 第一章-第十三题(该游戏团队, 有很好的软件,但是商业模式和其他软件之外的因素有没有考虑到?)--By梁旭晖
- 用javascript实现一个2048游戏
- 使用 Visual Studio Online 进行协同开发
- PHP中函数sprintf .vsprintf (占位符)
- ionic介绍
- Java学习-028-JSON 之二 -- 数据读取
- iframe 跨域自适应 纯css解决方法
- ARM开发板系统移植-----rootfs的制作
- SQL语句操作大全
- 括号匹配问题(C++、堆栈)
- intersect for multiple vectors in R
- 【BZOJ2527】MET-Meteors(整体二分)
- SequoiaDB 巨杉数据库
- mathematics of deep learning (paper reading)
- springmvc跳转到自定义404页面的三种方法
- vmware NAT 网络出现问题的解决方法
- Python2.7-pprint
- JAVA设计模式——第 2 章 代理模式【Proxy Pattern】(转)
- Python爬虫Urllib库的基本使用
热门文章
- vscode下搭建typescript时提示";无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称";错误的解决方法
- Spring Framework之IoC容器
- SVN同步代码问题集锦
- js对象中in和hasOwnProperty()区别
- UnboundLocalError,探讨Python中的绑定
- 记python 链式比较的坑
- Android AndroidManifest.xml详解
- css3新的选择器
- wireshark抓包实战(八),专家分析
- 【第一章】黎姿的python学习笔记