python sgd
时间: 2023-08-17 11:12:37 浏览: 98
python实现随机梯度下降(SGD)
SGD(Stochastic Gradient Descent)是一种基于随机梯度下降算法的优化,常用于训练神经网络模型。在Python中,你可以使用各种深度学习框架(如TensorFlow、PyTorch、Keras)或者自己编写代码来实现SGD。
下面是一个使用Python编写的简单SGD示例:
```python
import numpy as np
# 定义损失函数和梯度函数
def loss_function(w):
return w**2
def gradient_function(w):
return 2 * w
# 初始化权重
w = np.random.randn()
# 设置学习率和迭代次数
learning_rate = 0.1
num_iterations = 100
# 使用SGD进行优化
for i in range(num_iterations):
# 随机选取一个样本
sample = np.random.randn()
# 计算梯度
gradient = gradient_function(sample)
# 更新权重
w = w - learning_rate * gradient
# 输出当前损失值
loss = loss_function(w)
print(f"Iteration {i+1}: Loss = {loss}")
print(f"Optimized weight: {w}")
```
这个示例中,我们以求解最小化函数 f(w) = w^2 为目标,使用SGD来优化权重 w 的值。在每一次迭代中,我们随机选取一个样本,计算梯度并更新权重。最后输出优化后的权重值。
请注意,这只是一个简单的示例,实际应用中可能需要更复杂的实现和调参。同时,现有的深度学习框架提供了更高级的优化算法和工具函数,可以更方便地进行模型训练和优化。
阅读全文