一步真实解决:AssertionError:‘ERROR :–resume checkpoint does not exist‘

人工智能27

问题描述:

在使用yolov5训练自己模型,或者复现原文的数据时,一不小心程序断了,或者是使用服务器的时候断开连接了。这该怎么办?我也遇到了这,最开始是直接把【train.py】里面的这个参数

【--resume】的default设置成【True】,但是出现了下面的问题。这可把我愁坏了,还卡我好几天~~~

一步真实解决:AssertionError:‘ERROR :–resume checkpoint does not exist‘

; 问题解决

经过一番请教大佬,得到了这个解决办法。给点赞!!!也是浅浅记录下。

首先,先找到你的训练模型文件,一般为【 runs/train/exp/weights】目录下,该目录下会有这两个文件。

一步真实解决:AssertionError:‘ERROR :–resume checkpoint does not exist‘

然后,按照下面的两个操作之一进行操作,就可以解决了!!!

将【 train.py】里面的这个参数【 --resume】的default设置成【 runs/train/exp/weights/last.pt

在yolov5的根目录下,也就是【 train.py】文件目录下,使用终端命令输入如下内容

python train.py --resume runs/train/exp/weights/last.pt

这样,问题就解决了,运行起来的效果如下。会接着你断开的程序继续运行~~~

一步真实解决:AssertionError:‘ERROR :–resume checkpoint does not exist‘

到这,就已经解决了问题。欢迎关注蓝胖胖,咱们一起解决BUG~~~

Original: https://blog.csdn.net/Thebest_jack/article/details/125750008
Author: 蓝胖胖▸
Title: 一步真实解决:AssertionError:‘ERROR :--resume checkpoint does not exist‘



相关阅读1

Title: 如何迭代pandas dataframe的行

How to iterate over rows in a DataFrame in Pandas-DataFrame按行迭代

在对DataFrame进行操作时,我们不可避免的需要逐行查看或操作数据,那么有什么高效、快捷的方法呢?

<span class="hljs-keyword">import pandas <span class="hljs-keyword">as pd
inp = [{<span class="hljs-string">'c1':<span class="hljs-number">10, <span class="hljs-string">'c2':<span class="hljs-number">100}, {<span class="hljs-string">'c1':<span class="hljs-number">11,<span class="hljs-string">'c2':<span class="hljs-number">110}, {<span class="hljs-string">'c1':<span class="hljs-number">12,<span class="hljs-string">'c2':<span class="hljs-number">120}]
df = pd.DataFrame(inp)
<span class="hljs-keyword">for x <span class="hljs-keyword">in xrange(len(df.index)):
    <span class="hljs-keyword">print df[<span class="hljs-string">'c1'].iloc[x]</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

这似乎是最常规的办法,而且可以在迭代的过程中对DataFrame进行操作。

<span class="hljs-keyword">for i, row in enumerate(df.<span class="hljs-keyword">values):
    <span class="hljs-keyword">index= df.<span class="hljs-keyword">index[i]
    <span class="hljs-keyword">print row</span></span></span></span></span>

df.values 是 numpy.ndarray 类型
这里 i 是index的序号, row是numpy.ndarray类型。

import pandas as pd
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)

for index, row in df.iterrows():
    print row['c1'], row['c2']

df.iterrows() 的每次迭代都是一个 tuple类型,包含了index和每行的数据。

<span class="hljs-keyword">import pandas <span class="hljs-keyword">as pd
inp = [{<span class="hljs-string">'c1':<span class="hljs-number">10, <span class="hljs-string">'c2':<span class="hljs-number">100}, {<span class="hljs-string">'c1':<span class="hljs-number">11,<span class="hljs-string">'c2':<span class="hljs-number">110}, {<span class="hljs-string">'c1':<span class="hljs-number">12,<span class="hljs-string">'c2':<span class="hljs-number">120}]
df = pd.DataFrame(inp)

<span class="hljs-keyword">for row <span class="hljs-keyword">in df.itertuples():
    </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

itertuples 返回的是一个 pandas.core.frame.Pandas 类型。

普遍认为itertuples 比 iterrows的速度要快。

zip 和 itertools.izip的用法是相似的, 但是zip返回一个list,而izip返回一个迭代器。 如果数据量很大,zip的性能不及izip

<span class="hljs-keyword">from itertools <span class="hljs-keyword">import izip
<span class="hljs-keyword">import pandas <span class="hljs-keyword">as pd
inp = [{<span class="hljs-string">'c1':<span class="hljs-number">10, <span class="hljs-string">'c2':<span class="hljs-number">100}, {<span class="hljs-string">'c1':<span class="hljs-number">11,<span class="hljs-string">'c2':<span class="hljs-number">110}, {<span class="hljs-string">'c1':<span class="hljs-number">12,<span class="hljs-string">'c2':<span class="hljs-number">120}]
df = pd.DataFrame(inp)

<span class="hljs-keyword">for row <span class="hljs-keyword">in izip(df.index, df[<span class="hljs-string">'c1'], df[<span class="hljs-string">'c2']):
    <span class="hljs-keyword">print row</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
import <span class="hljs-built_in">time
<span class="hljs-built_in">from numpy.<span class="hljs-built_in">random import randn

df = pd.DataFrame({<span class="hljs-string">'a': randn(<span class="hljs-number">100000), <span class="hljs-string">'b': randn(<span class="hljs-number">100000)})

time_stat = []

</span></span></span></span></span></span></span>

可以发现在时间花销上, izip > zip > itertuples > enumerate > iterrows > range(index)

Original: https://www.cnblogs.com/bonelee/p/9732761.html
Author: bonelee
Title: 如何迭代pandas dataframe的行

相关阅读2

Title: tensorflow 1.X迁移至tensorflow2 代码写法

把tensorflow 1.X中的代码,迁移到tensorflow2中。一些常见的改写经验。包括sess,tf.placeholder, tf.InteractiveSession(),tf.Session()
tensorflow2相比于tensorflow 1.x版本有较大的变化,且网上现在好多文章的代码都是基于tf1.x版本的,学会简单的转换,帮助我们看代码。
整体来说,tensorflow2更加简洁了。
本文将持续更新中。

当然用tf.compat.v1也能解决部分问题。但是不推荐,毕竟tf2才是未来。

  • 1、tf1基于图模式,tf2基于eager模式,tf2对程序员更友好,更像是函数,更方便调试。
  • 2、tf2更向keras靠拢,对分布式训练的支持更好。

tf.placeholder

tensorflow 1.x版本中的placeholder,在tf2中已经被取消,在tf2中,可以用tf.keras.Inputs代替。
示例:
tf1中

input_ids = tf.placeholder(dtype=tf.int32, shape=[None])

tf2中,改写为:

input_ids = tf.keras.Input(dtype=tf.int32, shape=[None])

tf.Sess,sess.run

  • tensorflow 1.x由于是基于静态图机制(Graph Execution),需要先构造图,然后才真正运行,因此需要用显示调用Session后,才会真正触发计算。对调试代码非常不利。
  • tensorflow 2.x默认是基于动态图机制(Eager Execution),就像常规函数一样,调用时就触发计算。对调试代码非常方便。

所以,tf1中session部分代码,可以全部去掉。
示例:
tf1中

sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())

tf2中,改写为:

直接不要

具体例子1:

import tensorflow as tf
import numpy as np

input_ids = tf.placeholder(dtype=tf.int32, shape=[None])

embedding = a = np.asarray([[0.1, 0.2, 0.3], [1.1, 1.2, 1.3], [2.1, 2.2, 2.3], [3.1, 3.2, 3.3], [4.1, 4.2, 4.3]])

input_embedding = tf.nn.embedding_lookup(embedding, input_ids)

sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())

print(sess.run(input_embedding, feed_dict={input_ids: [1, 2, 3, 0, 3, 2, 1]}))

改写tf2代码:

import tensorflow as tf
import numpy as np

input_ids = tf.keras.Input(dtype=tf.int32, shape=[None])

embedding = a = np.asarray([[0.1, 0.2, 0.3], [1.1, 1.2, 1.3], [2.1, 2.2, 2.3], [3.1, 3.2, 3.3], [4.1, 4.2, 4.3]])

input_ids = np.array([1, 2, 3, 0, 3, 2, 1])

input_embedding = tf.nn.embedding_lookup(embedding, input_ids)
print(input_embedding)

可见,tf2代码简洁明了不少,多动手试试,就能体会。

深刻体会tf2带来的变革。
1、体会静态图和动态图的差别
2、体会对分布式训练的优化(未来写)
3、体会模型训练的便利性(直接用compile等,keras的便利性。)

Original: https://blog.csdn.net/weixin_43290383/article/details/121896799
Author: 浪漫的数据分析
Title: tensorflow 1.X迁移至tensorflow2 代码写法

相关阅读3

Title: virtualenv创建虚拟环境

1.1 virtualenv定义

建立一个隔离的python环境,激活它,就使用这个环境里的包、python等。

1.2 virtualenv安装

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

安装过程中出现例如dislib等包导致的失败,可运行如下命令安装:

pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple --ignore-installed distlib

2.1 清清爽爽新环境

virtualenv &#x8DEF;&#x5F84;

以这种方式创建环境将不包含系统的python包,新的环境里面只有pip、setuptools和wheel这些包,则许多包要用pip重新安装。

2.2 ubuntu中指定python版本

例如,若需指定使用系统中python3.6版本,首先找到python3.6安装在哪里(默认安装在 /usr/bin/python3.6,也可使用命令 whereis python3.6查看pyton3.6 安装路径 )

virtualenv -p /usr/bin/python3.6 myenv

2.3 windows中指定python版本

中间的python3.6需要自己先安装

virtualenv -p D:\\software1\\python36\\python.exe myenv

source myenv/bin/activate

cd myenv/Scripts
activate

deactivate

整深度学习,通常情况下,需要的基础包如下(借鉴yolov3):


matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.2
Pillow>=7.1.2
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.41.0

tensorboard>=2.4.1
wandb

pandas>=1.1.4
seaborn>=0.11.0

thop

可在本地新建一个 requirements.txt,复制粘贴上面内容并保存,在激活上述虚拟环境的情况下,使用命令 pip install -r requirements.txt安装即可,建议使用pip镜像源。

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

Original: https://blog.csdn.net/weixin_45377629/article/details/123979396
Author: 寻找永不遗憾
Title: virtualenv创建虚拟环境

相关文章
Spark DataFrame简介(一) 人工智能

Spark DataFrame简介(一)

1. DataFrame 本片将介绍Spark RDD的限制以及DataFrame(DF)如何克服这些限制,从如何创建DataFrame,到DF的各种特性,以及如何优化执行计划。最后还会介绍DF有哪些...
友链推荐 人工智能

友链推荐

Soaring Lee https://soaringleefighting.github.io/ 信息与信息处理专业 硕士,擅长视频编解码、图像处理和算法优化方向,使用C/C++、Python和Ma...
【笔记】辐射场 人工智能

【笔记】辐射场

前置知识 量化光的测量 对于一些光子: Radiant energy: 碰撞总数 Radiant flux: 每秒碰撞数 Irradiance: 每秒每单位面积碰撞数 不同的光子碰撞,贡献不同,如何量...
基于bert的命名实体识别任务(一) 人工智能

基于bert的命名实体识别任务(一)

自从bert提出后,nlp领域的预训练语言模型持续刷新各种任务榜单,各种预训练语言模型不断提出并更新迭代,最新的GPT3以千亿级的参数再次刷新了榜单任务。但是在工业界,bert的预训练+微调的任务模式...
配置TensorFlow的cuda环境教程 人工智能

配置TensorFlow的cuda环境教程

由于各种深度学习框架(TensorFlow、Pytorch等等)和 cuda 版本的更新较快,可能出现程序的编译和运行需要之前版本的 cuda 进行运行环境支持的情况。 为了满足应用程序和框架本身对不...
Python案例实操3-电影数据分析 人工智能

Python案例实操3-电影数据分析

Python案例实操3-电影数据分析 一、读取数据 二、数据处理 * 1.索引重命名 2.合并数据集 3.选取子集 4.缺失值处理 5.数据格式转换 三、数据分析及可视化 * 1.电影类型随时间变化趋...