大家好, 欢迎学习本教程｡
好了, 今天我们要做一个函数来保存我们的模型
这将保存汽车的大脑, 以便我们可以重用它, 每当我们退出应用程序｡
多亏了这个保存功能, 我们将能够保存模型, 然后退出应用程序｡
当我们返回到应用程序时,
由于另一个函数, 也就是在这个函数之后的load函数, 我们将加载训练好的模型的最后一个版本｡
这是非常实用的, 因此让我们将这两个函数设为保存函数和load函数｡
因此, 让我们从本教程中的保存函数开始｡
所以又来了一个新的死亡, 然后保存｡
然后它需要一个自变量, 这个自变量就是self｡
原因是,
我们要保存的不是整个模型, 而是我们的神经网络本身, 这个模型和我们的优化器本身,
因为我们要保存的只是我们在最后一次迭代中更新的最后一个权重, 因为无论何时我们想重用保存的模型, 我们都希望它预测我们已经训练好的权重的作用｡
因此, 我们需要获取这些最新版本的权重, 同时我们还需要获取优化程序的最新版本,
因为它与这些权重相关｡
所以我们开始吧｡
我们有我们自己, 所以我们将能够把我们自己, 那个模型和我们自己, 那个优化器｡
我们将保存这两个对象和Python字典｡
为了保存这两个对象, 我们将使用torch模块中的save函数｡
所以我从保存的torch开始, 在括号里我们要输入字典括号, Python中的字典是这样工作的｡
您有一个密钥, 它是您的标识符｡
所以这是独一无二的｡
对于每个键, 您都有要给予该键的值｡
它就像是一个映射函数, 从唯一标识符到您要给予这些标识符的值｡
如果你拿一本简单的字典书, 那么, 键就是单词, 值就是单词的定义｡
好吧, 在这里, 那是一样的｡
我们将创建两个键, 一个键用于我们要保存的第一个对象, 也就是self model｡
第二个要保存的是1/2密钥, 它是self点优化器｡
所以我们从第一把钥匙开始｡
所以我们要给予这个键命名, 我把它命名为state下划线dict, 因为你会看到我用函数state
dict保存我们的模型保存在字典里.
这是我们的第一个键, 然后给予第一个键赋值.
你也看到了, 我在这里和这里加了点小骗局.
我将添加对象, 即要保存的对象｡
所以我想保存的第一个对象是self model｡
所以我们可以复制这个自我模型, 并将其粘贴为我们的第一个关键自我的值, 即那个模型｡
然后我们添加点状态下划线日期, 在这里, 第一个,
然后我们添加一些括号, 这将在第一个关键状态指令中保存模型的参数｡
现在, 让我们保存优化器｡
所以我们要在字典里再加一个键｡
要做到这一点, 我们在这里加一个逗号, 然后按回车键, 我们用第二个键｡
第二个键, 我们称之为Optimizer｡
然后是Colin, 然后我们只需要添加要保存的对象的名称, 即self, 即优化器｡
因此, 我们在这里添加self dot优化器｡
为了保存此优化器的参数, 我们在这里再次使用了dot state dict,
然后我们保存了模型, 其中保存了所有权重和优化器｡
好极了｡
然后我们将所有这些保存到一个文件中｡
为此, 我将向保存函数添加第二个参数,
它将是我们希望保存模型和优化器的文件的名称｡
记得我在第一个单元的第一部分给你们展示了一个快速的演示, 自动驾驶汽车｡
你知道吗, 那是我们的演示, 我们只是有一些随机的行动｡
所以那还不是一辆自动驾驶汽车｡
但是, 请记住, 我点击了保存按钮来保存模型, 这创建了最后一个brain dot
PTA文件, 该文件包含了模型的保存版本｡
所以我在这里添加最后一个下划线brain点PTA, 这样你的模型和优化器就会被保存到这个创建的文件中｡
所以你还没拿到｡
但是, 只要您保存模型保存在应用程序中, 就将创建此文件, 这要归功于我们刚刚添加的代码｡
好吧, 我会的
所以现在完美了｡
我们有一个保存功能, 将保存您的模型, 通过保存权重和神经网络的优化器来保存您的汽车大脑｡
那实际上是汽车的大脑｡
太完美了｡
我们现在只剩下一个函数要创建了｡
这就是负载函数｡
这是因为保存函数没有load函数｡
您知道, 如果您无法加载之后保存的内容, 则保存模型是没有意义的｡
这是我们旅程的最后一步, 在精彩的演示之前, 我们将在本节的最后一个教程中介绍此load函数｡
我们在下一个教程中再见｡
在那之前, 好好享受我｡