栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【paddleGAN学习笔记】AI Studio平台基本操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【paddleGAN学习笔记】AI Studio平台基本操作

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • notebook中使用shell命令
  • Magic命令
  • Debug基础教学
    • 1.无PDB程序举例
    • 2. 引入PDB
    • 3.指令说明
    • 4. IPDB
  • 参考

notebook中使用shell命令

查看当前挂载的数据集目录

!ls /home/aistudio/data/

显示当前路径

!pwd

使用pip来安装自己需要的package (但不支持apt-get)

!pip install package_name

查看当前环境中安装的package

!pip list --format=columns

持久化安装

如果需要进行持久化安装, 需要使用持久化路径, 如下方代码示例:

!mkdir /home/aistudio/external-libraries
!pip install beautifulsoup4 -t /home/aistudio/external-libraries

同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可:

import sys
sys.path.append('/home/aistudio/external-libraries')

使用git命令来同步代码 (暂时需要Paddle 1.4.1以上)

%cd work/

/home/aistudio/work

!git clone https://github.com/PaddlePaddle/Paddle.git  #Paddle官方模型

Magic命令
  • Magic命令是Notebook的高级用法,可以运行一些特殊的指令。
  • Magic 命令的前面带有一个或两个百分号(% 或 %%),分别代表行 Magic 命令和单元格 Magic 命令。
  • 行 Magic 命令仅应用于编写 Magic 命令时所在的行,而单元格 Magic 命令应用于整个单元格。

#显示全部可用的Magic命令

%lsmagic

Available line magics:
%alias %alias_magic %autoawait %autocall %automagic %autosave %bookmark %cat %cd %clear %colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
Available cell magics:
%%! %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
Automagic is ON, % prefix IS NOT needed for line magics.

#使用Magic命令来统计运行时长

import random

%%timeit

prize = 0 
for i in range(100):
    roll = random.randint(1, 6)
    if roll%2 == 0:
        prize += roll
    else:
        prize -= 1

175 µs ± 2.12 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

还可以直接嵌入可视化内容, 例如%matplotlib inline:

%matplotlib inline
%config InlineBackend.figure_format = 'retina'

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,1,300)
for w in range(2,6,2):
    plt.plot(x, np.sin(np.pi*x)*np.sin(2*w*np.pi*x))

当前技术架构局限, 一个Cell里面只能输出一张图片. 如果输出多张图片, 可能会有显示异常的问题.

%env:设置环境变量
使用该命令, 可以在不必重启Kernel的情况下管理notebook的环境变量

# Running %env without any arguments
# lists all environment variables

# The line below sets the environment
# variable OMP_NUM_THREADS
%env OMP_NUM_THREADS=4

env: OMP_NUM_THREADS=4

%run: 运行python代码

使用%run 可以运行.py格式的python代码,用!python也是可以的。

%run work/SampleOfRun.py

It’s a demo code written in file SampleOfRun.py

%%writefile and %pycat: 导出cell内容/显示外部脚本的内容

%%writefile SaveToPythonCode.py

from math import sqrt
for i in range(2,10):
    flag=1
    k=int(sqrt(i))
    for j in range(2,k+1):
        if i%j==0:
            flag=0
        break
        if(flag):
            print(i)

Writing SaveToPythonCode.py

从中读文件内容

%pycat SaveToPythonCode.py

更多Magic命令可以点击这里查询 Magic命令

关于快速查看某个对象/方法/接口的用法

在要查询的对象前输入?或??并执行即可. 单问号是普通信息, 双问号是详细信息.

前提: 该对象方法已经被正确导入(import)

import paddle
import paddle.fluid

?paddle.fluid.layers.conv3d

关于变量监控

可以通过修改内核选项ast_note_interactivity,使得Jupyter对独占一行的所有变量或者语句都自动显示,这样就可以马上看到多个语句的运行结果了。

!pip install pydataset
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

from pydataset import data

quakes = data('quakes')
quakes.head()
quakes.tail()

initiated datasets repo at: /home/aistudio/.pydataset/
lat long depth mag stations
1 -20.42 181.62 562 4.8 41
2 -20.62 181.03 650 4.2 15
3 -26.00 184.10 42 5.4 43
4 -17.97 181.66 626 4.1 19
5 -20.42 181.96 649 4.0 11
lat long depth mag stations
996 -25.93 179.54 470 4.4 22
997 -12.28 167.06 248 4.7 35
998 -20.13 184.20 244 4.5 34
999 -17.40 187.80 40 4.5 14
1000 -21.59 170.56 165 6.0 119

关于调试代码

Notebook自带一个调试器, 叫The Python Debugger (pdb),我们来看看它是如何工作的.

# 对, 它也是依赖Magic命令启动的.
# 理论上pdb是可以通过脚本形式来启动. 但是在Notebook中不行, 会造成阻断

%pdb


def reverse(x: int) -> int:
    inputnumber = x.__str__()
    reversedStr = inputnumber[::-1]
    strOriLen = len(reversedStr)
    result = list()
    flag = 1
    for i in range(0, strOriLen):
        if i == (strOriLen -1) and reversedStr[i] == '-' :
            flag = -1
        else:
            result.append(reversedStr[i])
    outputs = ''.join(result)
    outputInt = int(outputs)        
     
    outputInt = outputInt * flag
        
    if outputInt > pow(2,31)-1  or outputInt < -1 * pow(2,31):
        outputInt = 0
        
    return outputInt

print(reverse(134))

Automatic pdb calling has been turned OFF
431

Debug基础教学
  • Python自带一个调试器, 在Python 3.7之后甚至成为内置调试器,这就是PDB。
  • 它基本上是一个交互式源代码调试器。
import pdb

class MyScrapy:
    urls = []

    def start_url(self, urls):
        pdb.set_trace()
        for url in urls:
            print(url)
            self.urls.append(url)

    def parse(self):
        pdb.set_trace()
        for url in self.urls:
            result = self.request_something(url)

    def request_something(self, url):
        print('requesting...')
        data = '''


    
    Title



'''
        return data


scrapy= MyScrapy()
scrapy.start_url(["http://www.zone7.cn", "http://www.zone7.cn", "http://www.zone7.cn", "http://www.zone7.cn", ])
scrapy.parse()
1.无PDB程序举例
import sys

def add(num1=0, num2=0):
    return int(num1) + int(num2)

def sub(num1=0, num2=0):
    return int(num1) - int(num2)

def main():
    #Assuming our inputs are valid numbers
    num1 = 0
    num2 = 2
    
    addition = add(num1, num2)
    print (addition)
    
    subtraction = sub(num1, num2)
    print (subtraction)

if __name__ == '__main__':
    main()

2
-2

2. 引入PDB
import pdb
pdb.set_trace()
import pdb
import sys

def add(num1=0, num2=0):
    return int(num1) + int(num2)
    
def sub(num1=0, num2=0):
    return int(num1) - int(num2)
    
def main():
    #Assuming our inputs are valid numbers
    num1 = 33
    num2 = 44
    pdb.set_trace() # <-- 这个表示添加断点
    addition = add(num1, num2)
    print (addition)
    subtraction = sub(num1, num2)
    print (subtraction)
    
if __name__ == '__main__':
    main()

一旦开始运行, 会出现交互框,如下图所示:

在这个输入框里敲入命令, 即可开始调试。

3.指令说明

① 下一行 - > n

在输入框里, 输入n, 可转到下一行

这将执行当前代码行,现在可以执行下一行。

可以使用n逐行遍历整个程序。

② 打印 - > p
如果想知道num1或num2包含什么,可以在输入框里输入:
p num1

如截图所示:

回车

方便查看变量实际存储的值。

③ 动态添加断点 - > b
运行程序之前,使用了pdb.set_trace()来设置断点。
若想在调试会话开始后,在程序的特定位置添加断点,可以输入b。

④ 动态分配变量
在调试会话期间可以分配变量以帮助调试。

输入后运行

⑤ 退出 - > q
想在任何时候退出,可以使用q。正在执行的程序被中止。

4. IPDB

IPDB 用法和PDB相似,不过返回的输出是彩色的。

ENTER (重复上次命令)

  • c (继续)
  • l (查找当前位于哪里)
  • s (进入子程序,如果当前有一个函数调用,那么 s 会进入被调用的函数体)
  • n(ext) 让程序运行下一行,如果当前语句有一个函数调用,用 n 是不会进入被调用的函数体中的
  • r (运行直到子程序结束)
  • !
  • h (帮助)
  • a(rgs) 打印当前函数的参数
  • j(ump) 让程序跳转到指定的行数
  • l(ist) 可以列出当前将要运行的代码块
  • p(rint) 最有用的命令之一,打印某个变量
  • q(uit) 退出调试
  • r(eturn) 继续执行,直到函数体返回

可以运行下方代码来安装ipdb

!pip install ipdb -i https://pypi.tuna.tsinghua.edu.cn/simple

参考

【飞桨 AI Studio】Notebook基础操作
【飞桨 AI Studio】Debug基础教学


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/918421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号