tensorflow学习---keras的Sequential模型

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import numpy as np
#Keras 是一个用于构建和训练深度学习模型的高阶 API。它可用于快速设计原型、高级研究和生产。
#keras的3个优点: 方便用户使用、模块化和可组合、易于扩展

#打印版本
print( tf.__version__)
print(tf.keras.__version__)
#层的堆叠
model=tf.keras.Sequential()
model.add(layers.Dense(32,activation='relu'))#第一个参数设置输出层的维数,activation:激活层函数,默认情况下系统不会使用任何激活函数
model.add(layers.Dense(32,activation='relu'))
model.add(layers.Dense(10,activation='softmax'))

# tf.keras.layers中网络配置:
# activation:设置层的激活函数。此参数由内置函数的名称指定,或指定为可调用对象。默认情况下,系统不会应用任何激活函数。
# kernel_initializer 和 bias_initializer:创建层权重(核和偏差)的初始化方案。此参数是一个名称或可调用对象,默认为 "Glorot uniform" 初始化器。
# kernel_regularizer 和 bias_regularizer:应用层权重(核和偏差)的正则化方案,例如 L1 或 L2 正则化。默认情况下,系统不会应用正则化函数。

#网络配置
layers.Dense(32,activation='sigmoid')
layers.Dense(32,activation=tf.sigmoid)
layers.Dense(32, kernel_initializer='orthogonal')
layers.Dense(32, kernel_initializer=tf.keras.initializers.glorot_normal)
layers.Dense(32, kernel_regularizer=tf.keras.regularizers.l2(0.01))
layers.Dense(32, kernel_regularizer=tf.keras.regularizers.l1(0.01))

#调用Compile方法配置该模型的学习流程:
model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
              loss=tf.keras.losses.categorical_crossentropy,
              metrics=[tf.keras.metrics.categorical_accuracy])
# optimizer:此对象会指定训练过程。从 tf.train 模块向其传递优化器实例,例如 AdamOptimizer、RMSPropOptimizer 或 GradientDescentOptimizer。
# loss:要在优化期间最小化的函数。常见选择包括均方误差 (mse)、categorical_crossentropy 和 binary_crossentropy。损失函数由名称或通过从 tf.keras.losses 模块传递可调用对象来指定。
# metrics:用于监控训练。它们是 tf.keras.metrics 模块中的字符串名称或可调用对象。

#输入Numpy数据
train_x=np.random.random((1000,72))
train_y=np.random.random((1000,10))

val_x=np.random.random((200,72))
val_y=np.random.random((200,10))

model.fit(train_x,train_y,epochs=10,batch_size=100,
          validation_data=(val_x,val_y))#使用fit方法对数据进行拟合
#epochs:以周期为单位进行训练,一个周期内对所有输入数据进行一次迭代
#batch_size:当Numpy传递数据时,分成较小的批次,并在训练中迭代这些批次。此整数指定每个批次的大小。
#validation_data:这个参数可以让模型在每个周期结束时以推理模型显示所传递数据的损失和指标。



#评估和预测
test_x=np.random.random((1000,72))
test_y=np.random.random((1000,10))
model.evaluate(test_x,test_y,batch_size=32)
test_data=tf.data.Dataset.from_tensor_slices((test_x,test_y))
test_data=test_data.batch(32).repeat()
model.evaluate(test_data,steps=30)
#预测
result=model.predict(test_x,batch_size=32)
print(result)

你可能感兴趣的:(python,tensorflow)