我的100天入门、练习和巩固python计划(始于2020-8-13)
- 目标:基础语法/网络爬虫/web框架/深度学习
- 使用的环境:anaconda中创建一个新的虚拟环境,命名为py36,安装python3.6
-
配置本地的编程环境,安装Anaconda3
-
创建一个新的python虚拟环境
conda create -n python_study python=3.7
按照pytorch官方教程搭建了一个神经网络和一个图像分类器
(因为自己的操作失误不小心删掉了,后面再写一遍把)
按照《Python编程——从如么到实践》简单的学习了下python的简单语法
我个人觉得比较重要的点:
python中是不能重载的
关于python中的方法和类的构造和使用重点掌握一下
# 类的实现,注意一下属性、初始化函数、自定义函数
class Dog():
def __init__(self, name, age, dogtype):
self.name = name
self.age = age
self.dogtype = dogtype
def sit(self):
print(self.name + " is now sitting!")
def roll_over(self):
print(self.name + "is now rolling!")
dog1 = Dog("xiaohua", "1", "er-ha")
dog1.sit()
# 类的继承,就是勇哥super().__init()__
# 稍微注意一下细节
class erha_Dog(Dog):
def __init__(self, name, age, dogtype='erha'):
super().__init__(name, age, dogtype)
def chaijia(self, time):
print(self.name + ' broken your home at ' + time)
python可以支持导入模块,也支持导入模块中的方法和类
- python的import不同于Java,还可以导入其中的变量。
- 导入时注意绝对导入和相对导入。
- 大致的看明白了pytorch的基本实现,就是官方的60min快速上手教程,还有部分细节还是需要继续注意,在这记录一下一个简单神经网络的构建、训练和测试流程:
- 加载数据集
- 定义net结构
- 定义loss
- 定义自己的optimizer
- 训练集上训练自己的网络:
- 正向传播
- loss反向传播
- 使用梯度进行参数更新
- 保存模型参数,使用模型进行测试
- 跑通了一个最简单的net:在MNIST数据集上,一个2层CONV和一层FC的网络。使用min-batch,大致的运行了几次,似乎 batch-size = 100-200的时候效果比较好,最好达到了99以上,batch-size过大和过小时都不是很合适。