tf.keras搭建网络八股

import

对各种库的导入

import tensorflow as tf
import numpy as np

train,test

对数据进行提取,划分出数据集和测试集

model = tf.keras.models.Sequential

model = tf.keras.models.Sequential([网络结构]) #描述各层网络
网络结构举例:

  • 拉直层:tf.keras.layers.Flatten()
  • 全连接层:tf.keras.layers.Dense(神经元个数,activation=“激活函数”,kernel_regularizer=正则化)
    • activation可选:relu、softmax、sigmoid、tanh
    • kernel_regularizer可选:tf.keras.regularizers.l1()、tf.keras.regularizers.l2()
  • 卷积层:tf.keras.layers,Conv2D(filters = 卷积核个数,kernel_size=卷积核尺寸,strides=卷积步长,padding=“valid"or"same”)
  • LSTM层:tf.keras.layers.LSTM()

class MyModel(Model) model = MyModel()

上面的网络结构只能是顺序的,不能创建跳跃的非顺序的网络结构,所以可以使用类class创建神经网络结构

class MyModel(Model):
	def __init__(self):
		super(MyModel,self).__init__()
		# 定义网络结构块
	def call(self,x):
		# 调用网络结构快,实现前向传播
		return y
model = MyModel()

model.compile

配置训练神经网络的训练方法
model.compile(optimizer = 优化器,loss = 损失函数,metrics=[“准确率”])
optimizer可选:

  • ‘sgd’ or tf.keras.optimizers.SGD(lr=学习率,momentum=动量参数)
  • ‘adagrad’ or tf.keras.optimizers.Adagrad(lr=学习率)
  • ‘adadelta’ or tf.keras.optimizers.Adadelta(lr=学习率)
  • ‘adam’ or tf.keras.optimizers.Adam(lr=学习率,beta_1 = 0.9,beta_2=0.999)

loss可选:

  • ‘mse’ or tf.keras.losses.MeanSquaredError()
  • ‘sparse_categorical_crossentropy’ or tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)

metrics可选:

  • ‘accuracy’ :y_和y都是数值,如y_ = [1] y = [1]
  • ‘categorical_accuracy’ : y_ 和 y都是独热码(概率分布),如y_=[0,1,0] y=[0.256,0.695,0.048]
  • ‘sparse_categorical_accuracy’ : y_是数值,y是独热码(概率分布),如y_=[1],y=[0.256,0.695,0.048]

model.fit

执行训练过程
model.fit(训练集的输入特征,训练集的标签,
batch_size= ,
epochs=,
validation_data=(测试机的输入特征,测试机的标签),
validation_split=从训练集划分多少比例给测试机,
validation_freq=多少次epoch测试一次)

model.summary

打印出网络结构和参数统计

鸢尾花案例

import tensorflow as tf
from sklearn import datasets
import numpy as np

x_train = datasets.load_iris().data
y_train = datasets.load_iris().target

np.random.seed(116)
np.random.shuffle(x_train)
np.random.seed(116)
np.random.shuffle(y_train)
tf.random.set_seed(16)

model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(3,activation="softmax",kernel_regularizer=tf.keras.regularizers.l2())
])
'''
from tensorflow.keras.layers import Dense
from tensorflow.keras import Model
class IrisModel(Model):
	def __init__(self):
		super(IrisModel,self).__init__()
		self.dl = Dense(3,activation='sigmoid',kernel_regularizer=tf.keras.regularizers.l2())
	def call(self,x):
	 	y = self.dl(x)
	 	return y
model = IrisModel()
'''

model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1),
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
              metrics=['sparse_categorical_accuracy'])

model.fit(x_train,y_train,batch_size=32,epochs=500,validation_split=0.2,validation_freq=20)

model.summary()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
波士顿房价数据集是由1978年美国波士顿与周边地区房屋的信息所构成的数据集。在这个数据集中,我们可以得到包括犯罪率、平均房间数、房屋离工作区中心的距离以及社区中收入中位数等以及14个特征。这些特征将用来预测所对应的房屋价格中位数。 当我们要用神经网络去处理这些数据时,我们需要将数据进行预处理来消除数据的差异性,有可能会进行归一化操作。然后使用 tf.keras 库来搭建神经网络模型,利用包含输入数据和输出数据的训练集对模型进行训练和优化。最终目标是使得神经网络模型能够预测新输入数据的输出数据。 使用 tf.keras 搭建神经网络模型时,我们需要选择合适的激活函数、损失函数以及优化器。常用的优化器包括Adam、SGD、Adadelta等方法。我们需要根据实际情况来选择合适的优化器。常用的激活函数包括ReLU、Sigmoid、Tanh等方法。损失函数的选择也比较关键,常用的损失函数有均方误差、交叉熵等方法。我们可以通过比较模型对不同损失函数的结果来选择最优的损失函数。 在模型训练过程中,我们可以通过监测模型的性能来对模型进行调整,监测指标包括训练集和测试集的准确度、损失等参数。当我们发现模型出现过拟合或者欠拟合等问题时,可以通过增加训练数据、减小网络规模、增加正则化项等方法来改善模型的性能。 总结来说,在使用 tf.keras搭建神经网络模型时,需要经过以下步骤:数据预处理、选择适当的激活函数、损失函数和优化器、模型训练参数调整等等。在实际应用中,我们可能需要通过不断尝试调整模型,从而得到最优的模型参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值