1.tensorflow基本使用

tensorflow基本使用

1.下载并安装 TensorFlow 2.0 测试版包。将 TensorFlow 载入你的程序

# 安装 TensorFlow
import tensorflow as tf

2.载入并准备好 MNIST 数据集。将样本从整数转换为浮点数

mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
#mnist数据集保存为RGB值,/255.0进行归一化,将数据保存在0-1之间,将整数转化成浮点数
x_train, x_test = x_train / 255.0, x_test / 255.0

3.将模型的各层堆叠起来,以搭建 tf.keras.Sequential 模型

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])
tf.keras.layers.Flatten 使输入展平,不会影响批处理的大小。如果输入形状为(batch,),没有特征轴,则展平会增加额外的通道尺寸,输出形状为(batch,1)。
tf.keras.layers.Dense(
	inputs=64,  # 输入该网络层的数据
	units=10,  # 输出的维度大小
	activation=None,  # 选择使用的(激活函数)
	use_bias=True,  # 是否使用(偏置项)
	kernel_initializer=None,  # 卷积核的初始化器
	bias_initializer=tf.zeros_initializer(),  # 偏置项的初始化器
	kernel_regularizer=None,  # 卷积核的正则化
	activaty_regularizer=None,  # 偏置项的正则化
	kernel_constraint=None,  # 对主权重矩阵进行约束
	bias_constraint=None,  # 对偏置向量进行约束
	trainable=True,  # 可以设置为不可训练,(冻结)网络层
	name=None,  # 层的名字
	reuse=None  # 是否重复使用参数
)
 tf.keras.layers.Dropout(
	rate,0~1之间的小数。让神经元以一定的概率rate停止工作,提高模型的泛化能力。
	noise_shape=None,1D张量类型,int32表示将与输入相乘的二进制丢失掩码的形状;
	seed=None, 随机种子
)

4.为训练选择优化器和损失函数

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
tensorflow中model.compile()用法
model.compile()方法用于在配置训练方法时,告知训练时用的优化器、损失函数和准确率评测标准
model.compile(
	optimizer = 优化器,例如:sgd,sdagrad,adadelta,adam
	loss = 损失函数,例如:mse,sparse_categorical_crossentropy
	metrics = 准确率,例如:accuracy,sparse_accuracy(独热编码),sparse_categorical_accuracy
	)

5.训练并验证模型

model.fit(x_train, y_train, epochs=5)
使用model.fit()方法来执行训练过程
model.fit(
	x_train, y_train, #告知训练集的输入以及标签,
	batch_size = 32, #每一批batch的大小为32,
	epochs = 500, #迭代次数epochs为500
	validation_split = 0.2, #从测试集中划分80%给训练集
	validation_freq = 20 #测试的间隔次数为20
	verbose:日志显示,0为不在标准输出流输出日志信息,1为输出进度条记录,2为每个epoch输出一行记录
)

6.评估模型

model.evaluate(x_test,  y_test, verbose=2)
model.evaluate:输入数据和标签,输出损失和精确度.
model.predict:输入测试数据,输出预测结果(通常用在需要得到预测结果的时候)

附:完整代码

# 安装 TensorFlow
import tensorflow as tf

mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
#mnist数据集保存为RGB值,/255.0进行归一化,将数据保存在0-1之间,将整数转化成浮点数
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)

model.evaluate(x_test,  y_test, verbose=2)

你可能感兴趣的:(tensorflow,tensorflow,深度学习,python)