Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ModelZoo
MobileNetv4_pytorch
Commits
68bc58a9
Commit
68bc58a9
authored
May 15, 2024
by
chenzk
Browse files
v1.0
parents
Pipeline
#996
failed with stages
in 0 seconds
Changes
42
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
102 additions
and
0 deletions
+102
-0
utils/__pycache__/misc.cpython-310.pyc
utils/__pycache__/misc.cpython-310.pyc
+0
-0
utils/misc.py
utils/misc.py
+102
-0
No files found.
utils/__pycache__/misc.cpython-310.pyc
0 → 100644
View file @
68bc58a9
File added
utils/misc.py
0 → 100644
View file @
68bc58a9
#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Time : 2022/2/10 12:43
# @Author : ''
# @FileName: misc.py
import
os
import
torch
def
make_dir
(
folder
):
if
not
os
.
path
.
isdir
(
folder
):
os
.
makedirs
(
folder
)
class
AverageMeter
(
object
):
"""Computes and stores the average and current value"""
def
__init__
(
self
):
self
.
reset
()
def
reset
(
self
):
self
.
val
=
0
self
.
avg
=
0
self
.
sum
=
0
self
.
count
=
0
def
update
(
self
,
val
,
n
=
1
):
self
.
val
=
val
self
.
sum
+=
val
*
n
self
.
count
+=
n
self
.
avg
=
self
.
sum
/
self
.
count
class
Logger
():
def
__init__
(
self
,
args
,
filename
=
'log.txt'
):
self
.
filename
=
filename
self
.
file
=
open
(
filename
,
'a'
)
# Write model configuration at top of file
for
arg
in
vars
(
args
):
self
.
file
.
write
(
arg
+
': '
+
str
(
getattr
(
args
,
arg
))
+
'
\n
'
)
self
.
file
.
flush
()
def
writerow
(
self
,
row
):
for
k
in
row
:
self
.
file
.
write
(
k
+
': '
+
row
[
k
]
+
' '
)
self
.
file
.
write
(
'
\n
'
)
self
.
file
.
flush
()
def
close
(
self
):
self
.
file
.
close
()
def
format_time
(
seconds
):
days
=
int
(
seconds
/
3600
/
24
)
seconds
=
seconds
-
days
*
3600
*
24
hours
=
int
(
seconds
/
3600
)
seconds
=
seconds
-
hours
*
3600
minutes
=
int
(
seconds
/
60
)
seconds
=
seconds
-
minutes
*
60
secondsf
=
int
(
seconds
)
seconds
=
seconds
-
secondsf
millis
=
int
(
seconds
*
1000
)
f
=
''
i
=
1
if
days
>
0
:
f
+=
str
(
days
)
+
'D'
i
+=
1
if
hours
>
0
and
i
<=
2
:
f
+=
str
(
hours
)
+
'h'
i
+=
1
if
minutes
>
0
and
i
<=
2
:
f
+=
str
(
minutes
)
+
'm'
i
+=
1
if
secondsf
>
0
and
i
<=
2
:
f
+=
str
(
secondsf
)
+
's'
i
+=
1
if
millis
>
0
and
i
<=
2
:
f
+=
str
(
millis
)
+
'ms'
i
+=
1
if
f
==
''
:
f
=
'0ms'
return
f
def
accuracy
(
output
,
target
,
topk
=
(
1
,)):
"""Compute the accuracy over the k top predictions for the specified values of k"""
with
torch
.
no_grad
():
maxk
=
max
(
topk
)
batch_size
=
target
.
size
(
0
)
# print(output)
_
,
pred
=
output
.
topk
(
maxk
,
dim
=
1
,
largest
=
True
,
sorted
=
True
)
pred
=
pred
.
t
()
# print(pred)
correct
=
pred
.
eq
(
target
.
view
(
1
,
-
1
).
expand_as
(
pred
))
res
=
[]
for
k
in
topk
:
correct_k
=
correct
[:
k
].
reshape
(
-
1
).
float
().
sum
(
0
,
keepdim
=
True
)
res
.
append
(
correct_k
.
mul_
(
100.
/
batch_size
))
return
res
Prev
1
2
3
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment