改变argparse linux形式手动输入参数

AI处理器组合 编号0-3的处理器处于同一个链路中,编号4-7的处理器处于另外一个链路中,不通链路中的处理器不能通信,如下图所示。- 如果申请处理器个数为1,则选择同一链路,剩余可用的处理器数量为1个的最佳,其次是剩余3个的为次佳,然后是剩余2个,最后是剩余4个。输出为组合列表,当array=[0, 1, 4, 5, 6, 7] ,num=1时,输出为[[0], [1]]- 如果申请处理器个数为2,则选择同一链路剩余可用的处理器数量2个的为最佳,其次是剩余4个,最后是剩余3个。任务申请1个处理器。 阅读详情
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
    @Author hekun
    @Date 2020/5/16 17:20
"""
#from __future__ import print_function  # 这个是python当中让print都以python3的形式进行print,即把print视为函数
import argparse  # 使得我们能够手动输入命令行参数,就是让风格变得和Linux命令行差不多
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torchvision import datasets, transforms


# Training settings 就是在设置一些参数,每个都有默认值,输入python main.py -h可以获得相关帮助
# parser = argparse.ArgumentParser(description='PyTorch MNIST Example')
# parser.add_argument('--batch-size', type=int, default=64, metavar='N',
#                     # batch_si  ze参数,如果想改,如改成128可这么写:python main.py -batch_size=128
#                     help='input batch size for training (default: 64)')
# parser.add_argument('--test-batch-size', type=int, default=1000, metavar='N',  # test_batch_size参数,
#                     help='input batch size for testing (default: 1000)')
# parser.add_argument('--epochs', type=int, default=10, metavar='N',
#                     help='number of epochs to train (default: 10)')
# parser.add_argument('--lr', type=float, default=0.01, metavar='LR',
#                     help='learning rate (default: 0.01)')
# parser.add_argument('--momentum', type=float, default=0.5, metavar='M',
#                     help='SGD momentum (default: 0.5)')
# parser.add_argument('--no-cuda', action='store_true', default=False,  # GPU参数,默认为False
#                     help='disables CUDA training')
# parser.add_argument('--seed', type=int, default=1, metavar='S',
#                     help='random seed (default: 1)')
# parser.add_argument('--log-interval', type=int, default=10, metavar='N',  # 跑多少次batch进行一次日志记录
#                     help='how many batches to wait before logging training status')
# args = parser.parse_args()  # 这个是使用argparse模块时的必备行,将参数进行关联,详情用法请百度 argparse 即可
# args.cuda = not args.no_cuda and torch.cuda.is_available()  # 这个是在确认是否使用gpu的参数,比如
#
# torch.manual_seed(args.seed)  # 设置一个随机数种子,相关理论请自行百度或google,并不是pytorch特有的什么设置
# if args.cuda:
#     torch.cuda.manual_seed(args.seed)  # 这个是为GPU设置一个随机数种子
#
# kwargs = {'num_workers': 1, 'pin_memory': True} if args.cuda else {}

batch_size = 64
test_batch_size = 1000
epochs = 5
momentum = 0.5
lr = 0.01
# train_loader = torch.utils.data.DataLoader(  # 加载训练数据,详细用法参考我的Pytorch打怪路(一)系列-(1)
#     datasets.MNIST('../data', train=True, download=True,
#                    transform=transforms.Compose([
#                        transforms.ToTensor(),
#                        transforms.Normalize((0.1307,), (0.3081,))
#                    ])),
#     batch_size=args.batch_size, shuffle=True, **kwargs)
train_loader = torch.utils.data.DataLoader(  # 加载训练数据,详细用法参考我的Pytorch打怪路(一)系列-(1)
    datasets.MNIST('../data', train=True, download=True,
                   transform=transforms.Compose([
                       transforms.ToTensor(),
                       transforms.Normalize((0.1307,), (0.3081,))
                   ])),
    batch_size=batch_size, shuffle=True)
# test_loader = torch.utils.data.DataLoader(  # 加载训练数据,详细用法参考我的Pytorch打怪路(一)系列-(1)
#     datasets.MNIST('../data', train=False, transform=transforms.Compose([
#         transforms.ToTensor(),
#         transforms.Normalize((0.1307,), (0.3081,))
#     ])),
#     batch_size=args.test_batch_size, shuffle=True, **kwargs)
test_loader = torch.utils.data.DataLoader(  # 加载训练数据,详细用法参考我的Pytorch打怪路(一)系列-(1)
    datasets.MNIST('../data', train=False, transform=transforms.Compose([
        transforms.ToTensor(),
        transforms.Normalize((0.1307,), (0.3081,))
    ])),
    batch_size=test_batch_size, shuffle=False)

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(1, 10, kernel_size=5)
        self.conv2 = nn.Conv2d(10, 20, kernel_size=5)
        self.conv2_drop = nn.Dropout2d()
        self.fc1 = nn.Linear(320, 50)
        self.fc2 = nn.Linear(50, 10)

    def forward(self, x):
        x = F.relu(F.max_pool2d(self.conv1(x), 2))
        x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))
        x = x.view(-1, 320)
        x = F.relu(self.fc1(x))
        x = F.dropout(x, training=self.training)
        x = self.fc2(x)
        return F.log_softmax(x, dim=1)


model = Net()  # 实例化一个网络对象
# if args.cuda:
#     model.cuda()  # 判断是否调用GPU模式
print(model)
# optimizer = optim.SGD(model.parameters(), lr=args.lr, momentum=args.momentum)  # 初始化优化器 model.train()
optimizer = optim.SGD(model.parameters(), lr=lr, momentum=momentum)
loss_f = nn.CrossEntropyLoss()


def train(epoch):  # 定义每个epoch的训练细节
    model.train()  # 设置为trainning模式
    running_loss = 0.0
    for i, data in enumerate(train_loader):
        # if args.cuda:  # 如果要调用GPU模式,就把数据转存到GPU
        #     data, target = data.cuda(), target.cuda()
        inputs, labels = data
        optimizer.zero_grad()  # 优化器梯度初始化为零
        outputs = model(inputs)  # 把数据输入网络并得到输出,即进行前向传播
        loss = loss_f(outputs, labels)  # 计算损失函数
        loss.backward()  # 反向传播梯度
        optimizer.step()  # 结束一次前传+反传之后,更新优化器参数
        running_loss += loss.item()
        # if batch_idx % args.log_interval == 0:  # 准备打印相关信息,args.log_interval是最开头设置的好了的参数
        if i % 2000 == 1999:  # print every 2000 mini-batches   所以每个2000次之类先用running_loss进行累加
            print('[%d, %5d] loss: %.3f' %
                  (epoch, i + 1, running_loss / 2000))  # 然后再除以2000,就得到这两千次的平均损失值
            running_loss = 0.0  # 这一个2000次结束后,就把running_loss归零,下一个2000次继续使用


def test():
    model.eval()  # 设置为test模式
    test_loss = 0  # 初始化测试损失值为0
    correct = 0  # 初始化预测正确的数据个数为0
    for data in test_loader:
        # if args.cuda:
        #     data, target = data.cuda(), target.cuda()
        inputs, labels = data
        outputs = model(inputs)
        test_loss += loss_f(outputs, labels).item()  # sum up batch loss 把所有loss值进行累加
        pred = outputs.data.max(1, keepdim=True)[1]  # get the index of the max log-probability
        correct += pred.eq(labels.data.view_as(pred)).sum().item()  # 对预测正确的数据个数进行累加

    test_loss /= len(test_loader.dataset)  # 因为把所有loss值进行过累加,所以最后要除以总得数据长度才得平均loss
    print('\nTest set: Average loss: {:.4f}, Accuracy={}\n'.format(
        test_loss, correct/len(test_loader.dataset)))


if __name__ == '__main__':
    for epoch in range(1, epochs + 1):  # 以epoch为单位进行循环
        train(epoch)
    test()
jre9下载 jdk9 (Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】 立即下载

相关推荐

Linux系统遭遇挖矿病毒深度排查与根治指南

本文提供了一份详尽的Linux服务器挖矿病毒排查与根治指南。当CPU异常满载但常规top命令无法定位进程时,需警惕病毒通过ld.so.preload文件隐藏。文章逐步指导如何清除恶意文件、进程、定时任务,并重点应对pamdicks等顽固变种,最后给出深度排查与系统加固方案,确保服务器安全。

weixin_29207533的博客 452

Python 使用argparse设置运行参数

Python Argparser设置运行参数前言argparse包使用1 创建ArgumentParser对象2 为ArgumentParser对象添加运行参数项3 解析ArgumentParser对象,获得argparse.Namespace对象4 全过程5 参数项说明使用解析后得到的argparse.Namespace对象 前言 本篇记录一下在python中使用argparse设置运行参数。 argparse是python自带的包 argparse包使用 argparse包的使用如下: 1 创建Arg

qq_41035283的博客 4510

VideoPose3D | 环境搭建

文章目录环境要求下载PyTorch基本步骤验证安装问题修复数据集设置Human3.6MCPN detections配置wget命令安装CPN评估环境测试问题测试报错 无法识别参数3 3 3 3卡在最后评估 主要参考:GitHub / facebookresearch / VideoPose3D 环境要求 Dependencies Make sure you have the followin...

D0 8655

Python argparse 添加参数

import argparse input_path = r'xx/xx/xx' parser = argparse.ArgumentParser('what do tou want to do') parser.add_argument('--input_dir', type=str, default=input_path,help='the input folder of files') args = parser.parse_args() function(args.input_dir)

Along1617188的博客 1116

LTC3783 LED驱动控制器设计与效率优化详解

开关电源控制器是现代LED照明的核心器件,通过电流模式控制实现高效能量转换。其核心原理是通过采样电阻检测负载电流,配合误差放大器形成闭环调节,在汽车电子、显示背光等场景中确保±3%的电流精度。LTC3783作为典型代表,集成升压/降压-升压多拓扑支持,配合PWM调光技术可实现3000:1的无色偏调光范围。在工程实践中,需重点考量功率电感选型、MOSFET开关损耗与热管理设计,例如在38W功率方案中采用10μH/5A电感和4.5mΩ MOSFET可达成95%效率。该方案特别适用于需要应对9-36V宽输入电压波

weixin_36231030的博客 399

实现 PDF 添加水印的五种方式

PDF(Portable Document Format,便携式文档格式)是一种流行的文件格式,它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下,我们需要对 PDF 文件添加水印,以使其更具有辨识度或者保护其版权。本文将介绍如何使用 Spring Boot 来实现 PDF 添加水印的方式。

逸轩 6471

Python的argparse命令参数和config配置参数(2023年2月)

python启动文件的参数管理,便于配置参数的修改

my_name_is_learn的博客 7940

Leads、SDR、MQL、SQL、L2C术语概念,线索创建与清洗、线索分级模型、线索流转策略、线索的统计与分析

CRM中的“Leads”是什么?笔者在文中不仅较为全面地介绍了相关术语概念,还分析了线索的创建与清洗、线索的分级模型、线索流转策略以及线索的统计与分析。

盼盼学士 5956

Python详解argparse参数模块(命令行参数)

对于参数解析,你了解多少

深度学习领域优质创作者,优快云博客专家 2753

华为OD机试真题 新系统 9月16号 【园区基站节能部署规划】

华为OD机试真题 新系统【园区基站节能部署规划】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【园区基站节能部署规划】多语言题解。

qq_45776114的博客 352

Ubuntu搭建Pytorch环境(Anaconda、Cuda、cuDNN、Pytorch、Python、Pycharm、Jupyter)

Ubuntu搭建Pytorch环境(Anconda、Cuda、Pytorch、Python、Pycharm、Jupyter)

funfan的博客 1万+

自定义输入参数值,argparse.ArgumentParser()

参考: http://blog.chinaunix.net/uid-23062171-id-4392178.html https://www.cnblogs.com/dengtou/p/8413609.html https://blog.youkuaiyun.com/u013946404/article/details/78188266 定义:argparse是python标准库里面用来处理命令行参数...

zz2230633069的博客 1万+

Python爬虫-爬取猫眼演出数据

本文是该专栏的第53篇,后面会持续分享python爬虫干货知识。猫眼平台除了有影院信息之外,它还涵盖了演出信息,比如说“演唱会,音乐节,话剧音乐剧,脱口秀,音乐会,戏曲艺术,相声”等等各种演出相关信息。而本文,笔者将以猫眼平台为例,基于Python爬虫实现获取各种演出信息的数据。废话不多说,具体细节部分以及详细思路逻辑,笔者将在正文结合完整代码进行详细说明。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 568

【Python】让Python程序参数输入更像Linux命令——argparse

原创公众号(谢谢支持):AIAS编程有道 背景 最近一直训练模型,进行模型调参比较,但是随着模型参数多起来了,想获得不同参数模型结果也越来越麻烦。看看前辈以及github上开源项目的代码后,感觉这个感觉学到了很多。让你的python程序输入参数更像Linux那样输入,之前使用sys.argv,看到这个之后感觉太low了。这个就是 Python 标准库的一部分:Argparse。那么下面让我们看看他是多么方便。 1 入门操作 由于这个包是Python标准库中的一部分,所以就不用安装了,直接使用即可。下面结.

让算法融入生活,改变生活! 859

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

cmd命令运行exe程序 参数_让Python程序参数输入更像Linux命令——argparse

文 | 菊子皮 (转载请注明出处)B站:科皮子菊背景最近一直训练模型,进行模型调参比较,但是随着模型参数多起来了,想获得不同参数模型结果也越来越麻烦。看看前辈以及github上开源项目的代码后,感觉这个感觉学到了很多。让你的python程序输入参数更像Linux那样输入,之前使用sys.argv,看到这个之后感觉太low了。这个就是 Python 标准库的一部分:Argparse[1]。...

weixin_28724661的博客 944

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python模块 —— argparse构建命令行

在写命令行之前我们先介绍一下什么是命令行,命令行的结构是怎么样的。我们以在Linux系统上的git命令为例作为介绍。基本命令行形式命令 [-option {必选参数1|必选参数2|必选参数3}] [可选参数...]命令示例如下:下图中git命令行帮助。

julong187的博客 1668

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python命令行参数解析:从getopt到argparse的友好演进

命令行参数解析是开发Python命令行工具时绕不开的基础环节。从脚本启动时的sys.argv原始字符串列表,到标准库getopt提供的POSIX风格选项解析,每一步都要求开发者手动处理类型转换、帮助文本和错误校验。随着工具复杂度上升,这种“零件式”方案逐渐成为效率瓶颈。argparse作为标准库中的进阶方案,以声明式参数定义替代手工逻辑,自动生成帮助信息、类型转换、子命令分发,成为工程实践中的主流选择。而click通过装饰器进一步简化接口,docopt则让文档字符串直接驱动解析。本文从sys.argv出发,

weixin_30954265的博客 346

1、argparse命令行参数&&python环境变量

python

weixin_44986037的博客 745

python定制命令行参数(argparse的使用)

定制命令行参数(argparse的使用)---- 可自制命令行小工具前言实现环境实现过程 前言 最近做的命令解释程序,想做成一个小工具的形式,在linux中使用命令行就可以执行整个程序,使用到的是python提供的argparse模块。 实现环境 XShell6 python 2.7.5 实现过程 导入argparse包 在python文件的头部增加import argparse ...

weixin_44283446的博客 412

linux 打包 python 程序作为 .deb_让Python程序参数输入更像Linux——argparse

如果文章对你有帮助,记得点赞收藏哦,如果有疑问记得评论区留下你的问题,我会第一时间回复的!背景最近一直训练模型,进行模型调参比较,但是随着模型参数多起来了,想获得不同参数模型结果也越来越麻烦。看看前辈以及github上开源项目的代码后,感觉这个感觉学到了很多。让你的python程序输入参数更像Linux那样输入,之前使用sys.argv,看到这个之后感觉太low了。这个就是 Python 标准库的...

weixin_39716703的博客 136

python 输入x结束程序_让Python程序参数输入更像Linux——argparse

如果文章对你有帮助,记得点赞收藏哦,如果有疑问记得评论区留下你的问题,我会第一时间回复的!背景最近一直训练模型,进行模型调参比较,但是随着模型参数多起来了,想获得不同参数模型结果也越来越麻烦。看看前辈以及github上开源项目的代码后,感觉这个感觉学到了很多。让你的python程序输入参数更像Linux那样输入,之前使用sys.argv,看到这个之后感觉太low了。这个就是 Python 标准库的...

weixin_28703489的博客 258

python 输入x结束程序_让Python程序参数输入更像Linux命令——argparse

文 | 菊子皮 (转载请注明出处)B站:科皮子菊背景最近一直训练模型,进行模型调参比较,但是随着模型参数多起来了,想获得不同参数模型结果也越来越麻烦。看看前辈以及github上开源项目的代码后,感觉这个感觉学到了很多。让你的python程序输入参数更像Linux那样输入,之前使用sys.argv,看到这个之后感觉太low了。这个就是 Python 标准库的一部分:Argparse[1]。...

weixin_28719385的博客 315

linux运行python代码需要三个参数_如何让Python程序参数输入更像Linux命令

背景最近一直训练模型,进行模型调参比较,但是随着模型参数多起来了,想获得不同参数模型结果也越来越麻烦。看看前辈以及github上开源项目的代码后,感觉这个感觉学到了很多。让你的python程序输入参数更像Linux那样输入,之前使用sys.argv,看到这个之后感觉太low了。这个就是Python标准库的一部分:Argparse[1]。那么下面让我们看看他是多么方便。1入门操作由于这个包是Pyth...

weixin_42510805的博客 1755

python输入语句参数_如何让Python程序参数输入更像Linux命令

背景最近一直训练模型,进行模型调参比较,但是随着模型参数多起来了,想获得不同参数模型结果也越来越麻烦。看看前辈以及github上开源项目的代码后,感觉这个感觉学到了很多。让你的python程序输入参数更像Linux那样输入,之前使用sys.argv,看到这个之后感觉太low了。这个就是 Python 标准库的一部分:Argparse[1]。那么下面让我们看看他是多么方便。1 入门操作由于这个包是P...

weixin_34587189的博客 164

linux下:Python-命令行输入参数学习(argparse模块,sys模块,os模块)

经常我们在编译Python代码的时候,会在命令行中增加自己指定的参数: 比如下面这个样子: python main.py --dataset_dir=apple2orange --continue_train True 这上面就有3个Python的脚本参数,arg[0],arg[1],arg[2] 在main.py中有下面语句来让用户输入用户自己指定的参数.形式很固定,记住就好: i...

CV_YOU的博客 2715

【转载】Python命令行工具argparse模块学习笔记

Python命令行工具argparse模块学习笔记 本文完全转载自Python命令行工具argparse模块学习笔记,仅用于学习备忘。 argparse模块是在命令行(windows的cmd窗口,Linux的shell)执行程序时,直接在命令行添加程序执行所需参数的便捷工具。 使用步骤: import argparse # 导入模块 parser = argparse.ArgumentParser() # 创建一个解析对象 parser.add_argument() # 向该对象中添加命令行参数和选项

youzhizhe2014的博客 533
上一篇: 运行.sh文件时遇到wget:command notf ound问题解决办法
下一篇: 使用Anaconda时能够新手简单操作命令
pytorch start
博客等级 码龄9年 4粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值