欢迎访问宙启技术站
智能推送

在Python中使用Keras.activationstanh()激活函数进行机器学习

发布时间:2023-12-24 06:16:20

在Python中使用Keras库实现机器学习任务时,可以使用Keras提供的激活函数来对神经网络的输出进行非线性变换。其中之一是双曲正切函数(tanh)。

双曲正切函数的数学表达式为tanh(x) = (exp(2x) - 1) / (exp(2x) + 1),其输出值的范围在[-1, 1]之间。tanh函数在神经网络中常用于隐藏层的激活函数,可以将输入值映射为非线性范围内的输出值,从而增加神经网络对非线性问题的拟合能力。

下面是一个使用Keras库中的tanh()激活函数的机器学习示例:

首先,我们需要导入相关的库和模块:

import numpy as np

from keras.models import Sequential

from keras.layers import Dense

from keras.activations import tanh

from sklearn.model_selection import train_test_split

然后,我们准备一个用于分类任务的数据集:

# 生成随机数据集

X = np.random.rand(1000, 10)  # 特征矩阵

y = np.random.randint(2, size=1000)  # 标签

接下来,我们将数据集分割为训练集和测试集:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

然后,我们构建一个包含tanh激活函数的神经网络模型:

# 创建一个顺序模型

model = Sequential()

# 添加一个全连接层(隐藏层)并使用tanh激活函数

model.add(Dense(32, input_dim=10, activation=tanh))

# 添加一个输出层,并使用sigmoid激活函数(用于二分类任务)

model.add(Dense(1, activation='sigmoid'))

接下来,我们编译模型,并设置损失函数、优化算法和评估指标:

# 编译模型

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

然后,我们使用训练集进行模型训练:

model.fit(X_train, y_train, epochs=10, batch_size=32)

最后,我们使用测试集评估模型的性能:

score = model.evaluate(X_test, y_test, verbose=0)

print('Test loss:', score[0])

print('Test accuracy:', score[1])

这就是一个使用Keras库的tanh()激活函数进行机器学习的示例。当然,除了tanh()激活函数外,Keras还提供了其他常用的激活函数,如sigmoid、ReLU等,你可以根据需要选择适合你的任务的激活函数。