from __future__ import print_function
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)#将数据中的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)
#把输出舍去掉百分之五十,这样就相当于随机拿掉了百分之五十的神经元,
#每一次训练都随机来一次,这样就做到了避免过拟合的问
TensorFlow之如何用dropout解决神经网络的过拟合问题
最新推荐文章于 2023-11-26 19:22:46 发布