从python零基础开始搭建强化学习环境(以及各软件安装)

本文介绍了新手如何从安装PyCharm和Python开始,强调了版本兼容性,分享了初步代码测试、使用Anaconda管理和安装Python库、PyTorch的GPU安装,以及强化学习环境配置的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、pycharm安装

由于我是纯新手,很多都搞不太懂,所以从安装开始学起,首先是要按照pycharm以及python,pycharm是运行python的一个软件,很有必要安装。PyCharm 是我知道的python编辑器中,比较顺手的一个。

这两者也是有版本对应的。(打个比方,你下载了pycharm的2021.1版本,但是你python是3.11,那是运行不了的,会有很多报错。)

而关于两者的具体安装过程,我是学习了这个教程:pycharm安装教程

二、初步测试代码

都安装好之后,可以网上找点代码初步进行实验,这里我是找了个画圆的代码,然后在pycharm创建好文档后,需要看一下你所找的代码都用了那些库,然后把这些库安装好,安装方式是:文件—设置—项目—python解释器,然后搜索对应的库点击安装即可,这样代码就能正常运行了。

(如果觉得库太少了,可以下载个整理库的软件Anaconda,还可以用他创建不同环境,具体方法和理解可以看这篇:Python、PyCharm和Anaconda的关系

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
# ==========================================
# 圆的基本信息
# 1.圆半径
r = 2.0
# 2.圆心坐标
a, b = (0., 0.)
# ==========================================
# 方法一:参数方程
theta = np.arange(0, 2 * np.pi, 0.01)
x = a + r * np.cos(theta)
y = b + r * np.sin(theta)
fig = plt.figure()
axes = fig.add_subplot(111)
axes.plot(x, y)
axes.axis('equal')
plt.title('圆形绘制1')
plt.show()

三、PyTorch的安装

测试没问题后,若需要进行神经网络模型类的训练,最好是加一个框架,而现在最好的应该就是PyTorch(说白了,就是搞神经网络就要下载它)。

PyTorch 是一个开源的深度学习框架,提供了丰富的工具和库,用于构建和训练各种深度神经网络模型,帮助用户更高效地进行深度学习任务。

PyTorch是分两个版本的,一般都下载gpu版本,这是我找的两者区别:

GPU 版本:PyTorch 的 GPU 版本利用 NVIDIA 的 CUDA 平台,加速深度学习模型的训练和推断。GPU 版本的 PyTorch 需要安装正确版本的 NVIDIA 显卡驱动和 CUDA 工具包。GPU 版本可以显著加快大规模神经网络模型的训练速度,特别是对于深层、复杂的模型或者大规模数据集。

CPU 版本:PyTorch 的 CPU 版本可以在几乎所有支持 C++ 编译器的计算设备上运行,包括各种CPU架构、移动设备和嵌入式系统等。相比于GPU版本,PyTorch 的CPU版本在进行大规模的深度学习模型训练时通常表现出较低的计算性能。

而下载gpu版本就需要提前安装好CUDA,整个过程都可以看这篇文章,很简洁:在Pycharm中搭建Pytorch,CUDA

之后找一个强化学习类的代码运行,一开始肯定会报错,看看缺什么库就去下载什么库,然后再看看有没有进位错误,都没有的话,一般是可以运行成功的,我就是到这里成功的。

四、个人简单总结

1.先安装pycharm和python。

2.再下个管理库的Anaconda。

(如果不跑强化学习或者不使用神经网络的话,到此就能用python了,缺什么库用pip install 库名  ,这个指令去安装即可。)

3.安装cuda。先看一下自己的nvidia版本,去该网站挑选cuda的版本并下载:https://developer.nvidia.com/cuda-toolkit-archive(可以打开nvidia控制面板-系统信息-组件,这样就可以看到本电脑可以安装cuda的最大版本号,只要不超过这个版本就行,但我们一般选择版本是要根据pytorch 版本结合选择。进入pytorch官网:https://pytorch.org/get-started/locally/#supported-windows-distributions,可以看到,我的电脑支持的最大版本就是CUDA12.1,且要注意python版本不能小于3.8)

4.安装完成后,可用下方的三句代码验证cuda是否安装成功,是否可用,如果结果为ture,则可用。

import torch
print(torch.__version__)
print(torch.cuda.is_available())

若cuda安装成功但是print(torch.cuda.is_available())却输出为false的原因有二:
①版本号不匹配
②pytorch不小心安装为cpu版,与cuda适配的pytorch应该为gpu版本。
5.配置环境

可以在Anaconda创建一个环境,然后运行四段代码。至于怎么创建,具体在第二部分的链接有。

python -m pip install --upgrade pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas
pip install gym==0.25.2
pip install pyglet

最后安装pytorch时,去官网:pytorch.org ,就像我上面选择的一样,选你需要的,然后在环境里运行下面那一行代码就行,之后去pycharm运行自己的代码时,看看缺什么库,就用 pip install 库名  ,安装即可。

(第一次尝试,教程肯定有不完善的地方,有问题随时提问,有错必改。)

### 设置和使用 PyCharm 中的强化学习项目 #### 创建 Python 项目 为了在 PyCharm 中启动一个新的强化学习项目,需先创建一个 Python 项目。这可以通过点击 `File` -> `New Project...` 来完成,在弹出窗口中指定项目的名称以及位置,并选择合适的 Python 解释器版本[^1]。 #### 安装 Anaconda 和必要的库 考虑到强化学习通常依赖于特定的数据科学包集合,建议通过安装 Anaconda 发行版来简化这些工具链的管理。Anaconda 提供了一个预配置好的平台用于数据处理、机器学习和其他计算密集型任务。下载并安装完成后,可以利用 Conda 命令行工具轻松管理和部署不同版本的软件包及其依赖关系[^4]。 #### 配置虚拟环境 对于任何严肃的研究工作来说,保持各个实验之间相互隔离是非常重要的;因此推荐为每一个新的研究课题建立独立的虚拟环境。可以在 Anaconda Navigator 的环境中创建专门针对此目的的新环境。一旦创建完毕,则可在 PyCharm 内部将其设为目标解释器,从而确保所有后续操作都在该环境下执行[^5]。 #### 安装 PyTorch 及其他相关组件 由于许多现代强化学习算法都基于深度神经网络实现,而 PyTorch 是一种广泛使用的框架之一,它提供了灵活高效的张量运算支持。按照官方文档指导,可以选择适合本地系统的安装方式——无论是稳定发行版还是最新的夜间构建版本均可满足需求[^3]。 #### 编写代码与调试 当一切准备就绪之后就可以着手编写具体的模型训练脚本了。下面给出一段简单的 Q-learning 实现作为例子: ```python import gym from collections import defaultdict def q_learning(env, num_episodes=500, discount_factor=1.0, alpha=0.5, epsilon=0.1): """ Implementation of the Q-Learning algorithm. Args: env (gym.Env): OpenAI Gym environment object. num_episodes (int): Number of episodes to run for training. ... Returns: A tuple containing two elements: - policy: The learned optimal policy as a dictionary mapping states to actions. - Q_table: The final action-value function estimates after all iterations have completed. """ # Initialize tables with zero entries Q_table = defaultdict(lambda: {action: 0.0 for action in range(env.action_space.n)}) returns_sum = defaultdict(float) returns_count = defaultdict(int) for i_episode in range(1, num_episodes + 1): state = env.reset() episode = [] while True: if random.uniform(0, 1) < epsilon: action = env.action_space.sample() # Explore space randomly sometimes else: action = max(Q_table[state], key=lambda k: Q_table[state][k]) # Exploit knowledge otherwise next_state, reward, done, _ = env.step(action) episode.append((state, action, reward)) if done: break state = next_state sa_in_episode = set([(tup[0], tup[1]) for tup in episode]) for state, action in sa_in_episode: pair = (state, action) first_occurence_idx = next(i for i, x in enumerate(episode) if x[0] == state and x[1] == action) G = sum([x[2]*(discount_factor**i) for i,x in enumerate(episode[first_occurence_idx:])]) # Update total rewards and counts returns_sum[pair] += G returns_count[pair] += 1.0 Q_table[state][action] = returns_sum[pair]/returns_count[pair] return dict(policy), dict(Q_table) if __name__ == '__main__': env_name = 'FrozenLake-v0' env = gym.make(env_name) _, Q = q_learning(env) ``` 上述代码展示了如何定义一个基本形式的价值迭代过程,并应用其解决经典的 Frozen Lake 游戏挑战。当然实际应用场景可能会更加复杂多变,但这足以作为一个起点去探索更高级的主题和技术细节。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值