第2节课:深度学习基础python代码

目录

编译环境:

代码:

文件:ds_0.py

小结:python声明不需要定义,整型和浮点型都是直接给予值,字符串的[-2]代表是列表倒数的某值;同一列表里面可以有各种类型的变量;哈希表的键值对在打印时是调用字典[key],然后输出对应的value

文件:judge_0.py

小结:python相对于c语言,是将()换成空格和“:”,与此同时判断语句if和else的缩进不同对应着不同层次的判定条件,约等于“{ }”

 文件:circle.py

小结:循环使用的是for i in range j:,区分c语言的for(i = 1; i <=j; i++),特别记忆在使用字典循环时是变量设置为each

文件:mylist.py

PS:快捷键设置(Fn+Esc可以锁定屏幕,使用Shift+F10运行的快捷键)

小结:区分出list.remove()是删除的是具体的数值,而非序列;而del list[ ]是去掉对应下标值;append是加入元素,extend是加入列表

 文件:myfunction.py

小结:定义函数是def 函数名():其余见注释

 文件:myclass

 小结:用class来定义不同的类,在类内部需要先定义一个初始化函数def __init__(self,name,age):其中self是代指实例化后的对象;继承的话是定义类时就传入(父类名)再接一行super的属性定义;当实例化一个子类对象时,可以使用父类的函数和属性

 文件mynumber.py

小结:涉及到对矩阵的一系列操作,例如矩阵化、合并矩阵、切片打印等

 总结:这篇是初始深度学习python代码上,同时也友好于python初学者,与之共勉,加油!

编译环境:

第2节课:深度学习基础python代码_第1张图片

代码:

文件:ds_0.py

a=3
# a=3.0
print(a) #一种打印
b=3.4
print(a,b)  #第二种打印
a,b=b,a
print(a,b) #交换打印
print("\n")

name="laopodeyanzhi"
print(name)  #第三种打印
print(name[2])
print("\n")

#列表 list
list1=[1,2,3,4]
print(list1)
print(list1[2]) #顺序打印第n+1个
print(list1[-2]) #列表的倒数第二开始打印输出
dict1={"name":"laopodeyanzhi","age":21,20:80}
list2=[1,"cs",dict1]
print(list2)  #相当自由,有字符,数字甚至字典
print("\n")

#字典 哈希表 {} dict {key:value}
dict1={"name":"laopodeyanzhi","age":21,20:80}
print(dict1["name"])
print(dict1["age"])
print(dict1[20]) #允许数字,字符共存
小结:python声明不需要定义,整型和浮点型都是直接给予值,字符串的[-2]代表是列表倒数的某值;同一列表里面可以有各种类型的变量;哈希表的键值对在打印时是调用字典[key],然后输出对应的value

文件:judge_0.py

a=3
if a==3 :
    print("right")
    print("yep")
if a==4:
    print("wrong")
b=6
if b>4:
    if b==5:
        print("right")
    else: #判断都是有”:“的
        print("no")
print("\n")

A=None #表示为空
小结:python相对于c语言,是将()换成空格和“:”,与此同时判断语句if和else的缩进不同对应着不同层次的判定条件,约等于“{ }”

 文件:circle.py

#for i in范围
list1=[1,2,3,4,5]
for i in list1:
    print(i)
for i in range(10):
    print(i)
print("\n")
for i in range(2,10,2):  #起始,步长
    print(i)

dict1={"name":"laopodeyanzhi","age":21,20:80}
for each in dict1:#在字典里面是使用each
    print(each)
    print(dict1[each])
小结:循环使用的是for i in range j:,区分c语言的for(i = 1; i <=j; i++),特别记忆在使用字典循环时是变量设置为each

文件:mylist.py

list1=[1,2,3,4,5]
for each in list1:
    print(each)
print(list1[1:4]) #输出1-3
print(list1[1:-1])
print(list1[1:])
print("\n")

list1.remove(3) #删除的是具体的数值,而非序列
print(list1)
list2=[1,2,6,4,5]
list2.remove(6)
print(list2)
print("\n")

del list1[3]#删除下标为3的序列
print(list1)
list1.append(8)#末尾进行加入
print(list1)
print("\n")

list1.append([10,11])#末尾进行加入元素[1, 2, 4, 8, [10, 11]]
print(list1)
list1.extend([10,11])#末尾进行加入列表[1, 2, 4, 8, [10, 11], 10, 11]
print(list1)
print("\n")

#循环链表的后置
list3=[i for i in range(10)]
print(list3)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
PS:快捷键设置(Fn+Esc可以锁定屏幕,使用Shift+F10运行的快捷键)
小结:区分出list.remove()是删除的是具体的数值,而非序列;而del list[ ]是去掉对应下标值;append是加入元素,extend是加入列表

 文件:myfunction.py

a=3
b=4
print(a+b)
print(a/b)
print(a//b)#向下取整,地板除

def myfun(A):#定义函数
    c=A**2
    return c
print(myfun(b))
print("\n")

def myfun1(A,B=3):#如果传入B,就返回A的B次方,否则返回A的三次方,其中B=3这种项只能放后面
    c=A**B
    return c
print(myfun1(b))
小结:定义函数是def 函数名():其余见注释

 文件:myclass

#深度学习,模型   集成很多属性和自己的函数,是这个类的实例,就能用它的东西
#函数间是相互屏蔽的,彼此不知道对方的函数内容def
class person():
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def print_name(self):
        print(self.name)

class superman(person):#这里就是继承了前面的person类
    def __init__(self,name,age):
        super(superman, self).__init__(name,age)#继承了前面的类,后面一定需要加入继承的前面的name,age属性定义
        self.fly_=True
    def fly(self):
        if self.fly_==True:
            print("i can fly")#attention缩进

laopo=person("change","22")#实例化一个类,
print(laopo.name)#调用属性
laopo.print_name()#调用函数
print(laopo.print_name())#输出name,和none,因为def print_name函数没有返回值,就返回none
print(laopo.age)
print("\n")

lao=superman("change","21")
lao.print_name()
lao.fly()
 小结:用class来定义不同的类,在类内部需要先定义一个初始化函数def __init__(self,name,age):其中self是代指实例化后的对象;继承的话是定义类时就传入(父类名)再接一行super的属性定义;当实例化一个子类对象时,可以使用父类的函数和属性

 文件:mytensor.py

import torch
list1=[
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
]
tensor1=torch.tensor(list1)
print(tensor1)
print("\n")

x=torch.tensor(3.0)
x.requires_grad_(True)#表明x是需要计算梯度的
y=x**2
y.backward()#y对x求导

print(y)
print(x.grad)#x方求导是2x,所以为6
print("\n")

#x=x.detach()#用它来标示后面不能继续对同一x求导,会报错
x.grad=torch.tensor(0.0)#在开始下一个的求导计算时,需要对前面已经计算后的梯度清零,否则会叠加(张量网特性)
y2=x**2
y2.backward()#y对x求导

print(y2)
print(x.grad)#x方求导是2x,所以为6

#创建张量
tensor3=torch.ones((5,3))
print(tensor3)#全是零的张量矩阵
tensor4=torch.normal(5,0.0001,(5,4))#分别代表均值,方差,矩阵维度(维度还可以是(3,5,4)代表三维)
print(tensor4)


#张量求和
sum1=torch.sum(tensor4,dim=0,keepdim=True)#dim=0代表竖着加起来,keepdim=True表示保持形状
print(sum1)
print(tensor4.shape)#is not callable代表多打括号

小结:在操作列表list时,需要将之转变为张量,也就是tensor1=torch.tensor(list1),这里涉及到梯度求导的计算,创建有规律张量的方法,张量求和的方法等

 文件mynumber.py

#矩阵
import numpy
import numpy as np
import torch

list1=[
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
    [13,14,15,16]
    ]
list2=[
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
    [13,14,15,16]
    ]
print(list1)#依旧是字符串
array1=np.array(list1)#是矩阵
array2=np.array(list2)
print(array1)
array3=np.concatenate((array1,array2),axis=1)#合并两个矩阵时,需要两个括号,axis代表轴等于1时是横向
print(array3)
print("\n")

#切片
print(list1[1:3])
print(array1[1:3,2:4])#表示2、3行的3、4列
#跳着切片
idx=[1,3]
print(array1[:,idx])#只要第1、3列
小结:涉及到对矩阵的一系列操作,例如矩阵化、合并矩阵、切片打印等

 总结:这篇是初始深度学习python代码上,同时也友好于python初学者,与之共勉,加油!

你可能感兴趣的:(李哥深度学习,python,深度学习,神经网络)