请问人工神经网络中的activation function的作用具体是什么?为什么ReLu要好过于tanh和sigmoid function?


Begin Again
  ,谨言慎行!
知乎用户、lgc张小璐  等人赞同
编辑于 2016-03-29  38 条评论  感谢 
分享
  收藏    没有帮助    举报    作者保留权利
王峰  ,深度学习调参狗
在Python中使用Back Propagation (BP) 神经网络进行分类任务通常涉及以下几个步骤: 1. **导入库**: ```python import numpy as np import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense ``` 2. **数据准备**: - 导入数据集(假设我们有训练集X_train对应的标签y_train) - 可能需要对数据进行预处理,如归一化、划分测试集等 3. **构建模型**: ```python model = Sequential() model.add(Dense(units=64, activation='relu', input_dim=X_train.shape[1])) # 输入层,激活函数可以换成其他选择如sigmoidtanh model.add(Dense(units=32, activation='relu')) # 隐藏层 model.add(Dense(units=1, activation='sigmoid')) # 输出层,对于二分类任务,最后一层通常是 sigmoid 激活 model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) # 优化器,损失函数,评估指标 ``` 4. **训练模型**: ```python history = model.fit(X_train, y_train, epochs=50, batch_size=32, validation_split=0.2) # 训练模型并记录历史信息 ``` 5. **评估预测**: ```python _, accuracy = model.evaluate(X_test, y_test) predictions = model.predict_classes(X_test) print(f"Test accuracy: {accuracy}") ``` 6. **保存加载模型**: ```python model.save('my_model.h5') # 保存模型 loaded_model = tf.keras.models.load_model('my_model.h5') # 加载模型 ``` **注意事项**: - 数据量足够大时效果较好,如果数据不足,可能会导致过拟合; - 调整网络结构(隐藏层节点数、层数)、学习率等超参数可能会影响性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值