Day 02 - 选择具有GPU的EC2并完成配置

Day 02 - 选择具有GPU的EC2并完成配置

需要配置一台电脑来处理接下来所有的服务,因为这是深度学习的应用,所以需要使用到GPU,而GPU的配置十分繁琐,而透过AWS EC2来配置的话,只要选择好对应的个体类型与AMI(Amazon Machine Image),可以很快的完成主机的配置。关于EC2的详细操作,可参考先前的 Amazon Elastic Compute Cloud (EC2) 笔记),在这里只简单的把画面撷取下来。

首先要确认随选的个体(instance)是否有足够的数量可供使用,因为通常一些比较特别的个体类型,预设未必会提供,需要向 Support Center 发出请求案例(case),才可以得到可配置的数量,下图为新加坡地区 EC2 控制台的操作画面,点击左边功能导航条的限制,就会在右手边出现所有AWS的限制,输入instance进行过滤,就可以得到所有个体的相关限制,我们可以看到随需G instance的限制为768 vCPU。

在这里插入图片描述

图1、检视EC2中个体的限制

接下来就可以开始配置一台拥有GPU的EC2,点击左边功能导航条的实例,接着在主画面中点击启动实例,进入Step 1: Choose an Amazon Machine Image(AMI),在搜索文字方块中输入deep learning,进行过滤。会出现很多符合这个关键字的AMI,拉到画面最下方点击143 results in AWS Marketplace如下图所示,因为客制化的AMI很多是要另外收费的,也就是你用 AMI 要收费,运行 AMI 的个体也要收费,使用AWS自己设计的AMI通常是不收费的,不过,重点是透过这个步骤可以看到这个 AMI 的详细介绍。

在这里插入图片描述图2、检视在AWS市场中符合deep learning的AMI

在下图中可以看到这个AMI所安装的操作系统-Amazon Linux 2,已经安装的深度学习套件-TensorFlow,MXNet,PyTorch,and tools like TensorBoard,TensorFlow Serving,and Multi Model Server.跟相关的gpu套件-NVIDIA CUDA,cuDNN,and Intel MKL-DNN。点击最下方的AWS Deep Learning AMI (Amazon Linux 2) product detail page on AWS Marketplace可以看到整个 AMI 的详细介绍以及如何在这个 AMI 下进行操作。

在这里插入图片描述
图3、检视在AWS Deep Learning AMI的属性

下图为 AWS Deep Learning AMI (Amazon Linux 2) 这个镜像的定价画面,通常镜像供应商(Vendor)会提出一个建议的个体,以这个镜像而言,它推荐的是p3.2xlarge这个个体类型,但在新加坡地区的定价是每小时4.234美元,在考察成本的情况下,选择g4dn.2xlarge,每小时1.052美元。

  • Region: Asia Pacific (Singapore)
  • Fulfillment Option: 64-bit (x86) Amazon Machine Image (AMI)
  • Software Pricing Details: AWS Deep Learning AMI (Amazon Linux 2) $0 /hr
  • Infrastructure Pricing Details: Estimated Infrastructure Cost $1.052 EC2/hr

在这里插入图片描述
图4、计算符合需求的最佳的定价

g4dn 实例旨在协助加速机器学习推论和图形密集型工作负载,具有以下特色:

  • 第二代Intel Xeon Scalable(Cascade Lake)处理器
  • NVIDIA T4 Tensor Core GPUs
  • 高达100 Gbps网络输送量
  • 多达1.8 TB本机NVMe储存

而g4dn.2xlarge这个个体的规格是1 GPU,8 vCPU,32(GB)內存,16(GB)GPU內存,225实例储存体(GB)。

接下来的配置如下:

  • Choose AMI: AWS Deep Learning AMI (Amazon Linux 2) version:49 (64-bit x86)

  • Choose Instance Type: g4dn.2xlarge

  • Configure Instance:

    • Network : vpc-0cxxxx | Default VPC (default) (可以自己指定)
    • Subnet : No preference (default subnet in any Availability Zone) (可以自己指定)
    • Auto-assign Public IP : Enable
  • Add Storage: 200G 因为预设已经安装很多套件,所以建议改为200G比较够用。

  • Add Tags: 可加可不加,通常是用在 Cloud watch 观察比较方便,我们先不加。

  • Configure Security Group: 为提供安全保障,限制进来的联机,因为我们是建置Web服务器,所以打开端口号22与80。

    • Assign a security group: Create a new security group
    • Security group name: ithome2021_web_SG
    • Description: ITHOME Web server Security Group
    • Type: SSH,HTTP
    • Source: Anywhere,Anywhere
  • Review: 看一下前述的所有设定,确定无误后就直接按下Launch

  • Key pair 设定: 因为安全考察,AWS要求使用者务必要用密钥对(key pair)的方式来进行联机,因此在启动 EC2 前会要求建立或选择密钥对,下载下来的密钥对钥一定要好好保存,遗失后是没办法再重新下载的。

在这里插入图片描述
图5、AWS EC2配置检视

參考資料

  • Recommended GPU Instances, https://docs.aws.amazon.com/dlami/latest/devguide/gpu.html
  • NVIDIA Deep Learning AMI, https://aws.amazon.com/marketplace/pp/prodview-e7zxdqduz4cbs?ref=cns_srchrow
  • 现已推出 8211 配有 NVIDIA T4 Tensor Core GPU 的 EC2 实例 (G4), https://aws.amazon.com/cn/blogs/china/now-available-ec2-instances-g4-with-nvidia-t4-tensor-core-gpus/?nc1=b_nrp
### 回答1: 以下是使用Python和Selenium实现的工学云自动签到代码: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.chrome.options import Options import time # chrome驱动路径 chrome_driver_path = "chromedriver.exe" # 用户名和密码 username = "您的用户名" password = "您的密码" # 设置chrome参数 chrome_options = Options() chrome_options.add_argument("--headless") # 无头模式 chrome_options.add_argument("--disable-gpu") chrome_options.add_argument("--no-sandbox") # 创建chrome浏览器实例 browser = webdriver.Chrome(executable_path=chrome_driver_path, options=chrome_options) # 打开网页 browser.get("https://www.gxyclub.com/") # 登录 login_btn = browser.find_element_by_class_name("login-item") login_btn.click() username_input = browser.find_element_by_id("username") username_input.send_keys(username) password_input = browser.find_element_by_id("password") password_input.send_keys(password) submit_btn = browser.find_element_by_id("submit") submit_btn.click() # 等待登录完成 WebDriverWait(browser, 10).until( EC.visibility_of_element_located((By.CLASS_NAME, "user-info")) ) # 进入签到页面 sign_in_btn = browser.find_element_by_xpath('//*[@id="topNavBar"]/div[2]/div/a[5]') sign_in_btn.click() # 判断是否已签到 sign_in_status = browser.find_element_by_css_selector('.day-btn.btn.btn-primary') if sign_in_status.text == "已签到": print("今天已经签到了") else: # 签到 sign_in_btn = browser.find_element_by_css_selector('div.sign-in-wrap > .day-btn.btn-primary:not(.disabled)') sign_in_btn.click() # 等待签到完成 WebDriverWait(browser, 10).until( EC.visibility_of_element_located((By.CSS_SELECTOR, '.system-message.success')) ) print("签到成功") # 关闭浏览器 browser.quit() ``` 上面的代码实现了自动登录工学云进行签到,执行后会在控制台输出签到结果。将代码保存为.py文件运行即可。需要注意修改代码中的用户名、密码以及chrome驱动的路径。 ### 回答2: 工学云自动签到代码示例: ```python import requests def sign_in(username, password): login_url = 'https://your_login_url' # 替换为登录页面url sign_in_url = 'https://your_sign_in_url' # 替换为签到页面url # 创建会话 session = requests.Session() # 登录 login_data = { 'username': username, 'password': password } response = session.post(login_url, data=login_data) # 检查登录状态 if '登录成功' in response.text: print('登录成功') else: print('登录失败') return # 签到 sign_in_data = { # 根据签到页面的表单字段,填写相应的参数 'param1': 'value1', 'param2': 'value2' } response = session.post(sign_in_url, data=sign_in_data) # 检查签到结果 if '签到成功' in response.text: print('签到成功') else: print('签到失败') # 替换为你的工学云账号和密码 username = 'your_username' password = 'your_password' sign_in(username, password) ``` 上述代码中,根据实际情况,你需要替换以下部分: - `'https://your_login_url'`:替换为工学云的登录页面url - `'https://your_sign_in_url'`:替换为工学云的签到页面url - `'param1': 'value1', 'param2': 'value2'`:根据签到页面的表单字段,填写相应的参数 - `'your_username'`:替换为你的工学云账号 - `'your_password'`:替换为你的工学云密码 请确保按照实际情况正确填写这些信息。运行代码后,它将自动登录到工学云,进行签到操作。输出结果将会显示登录和签到的成功与否。 ### 回答3: 工学云自动签到的代码可以使用Python语言编写。 首先,我们需要导入所需的库,如requests和time: ```python import requests import time ``` 然后,我们需要定义工学云的登录URL和签到URL,以及相关的参数。这些参数可以在浏览器的开发者工具中查找获得: ```python login_url = "https://www.example.com/login" # 工学云的登录URL signin_url = "https://www.example.com/signin" # 工学云的签到URL username = "your_username" # 工学云用户名 password = "your_password" # 工学云密码 payload = { "username": username, "password": password } signin_payload = { "type": "signin" } ``` 接下来,我们可以编写登录函数来进行自动登录: ```python def login(): session = requests.Session() session.post(login_url, data=payload) return session ``` 然后,我们可以编写签到函数来进行自动签到: ```python def signin(session): session.post(signin_url, data=signin_payload) ``` 最后,调用登录函数和签到函数,设置定时器来实现自动签到的功能: ```python if __name__ == "__main__": session = login() signin(session) # 每天定时签到 while True: current_time = time.localtime(time.time()) if current_time.tm_hour == 8 and current_time.tm_min == 0: session = login() signin(session) time.sleep(60) # 避免重复签到 ``` 以上就是一个简单的工学云自动签到的代码示例,可以根据实际情况进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值