update
continuous-integration/drone/push Build is failing Details

This commit is contained in:
yayoimizuha 2023-10-15 15:29:26 +09:00
parent cbea8536d8
commit 12c34adbc3
30 changed files with 72 additions and 46 deletions

View File

@ -22,4 +22,5 @@ steps:
- mkdir -p data - mkdir -p data
- $mount_command - $mount_command
- ls data/ - ls data/
- CI=True python facenet_transfer_learning.py - source setenv.sh
- CI=True python finetune/facenet_transfer_learning.py

View File

@ -13,6 +13,7 @@ from time import sleep
from io import BytesIO from io import BytesIO
from math import sqrt from math import sqrt
# from insightface.app import FaceAnalysis # from insightface.app import FaceAnalysis
# pip install retinaface_pytorch
from retinaface.pre_trained_models import get_model from retinaface.pre_trained_models import get_model
from retinaface.predict_single import Model from retinaface.predict_single import Model
from contextlib import redirect_stdout, redirect_stderr from contextlib import redirect_stdout, redirect_stderr

View File

@ -1,12 +1,9 @@
from os import makedirs, environ from os import makedirs, environ
from torchinfo import summary from torchinfo import summary
from torchvision.models import Swin_V2_B_Weights, swin_v2_b from torch.nn import Linear, Sequential, Dropout, CrossEntropyLoss, Identity, ReLU
from torch.nn import Linear, Dropout3d, Sequential, Dropout, Conv2d, CrossEntropyLoss, Identity, MaxPool2d, ReLU, \
Softmax
from torchvision.transforms import Compose, RandomResizedCrop, RandomRotation, ToTensor, \ from torchvision.transforms import Compose, RandomResizedCrop, RandomRotation, ToTensor, \
RandomHorizontalFlip, \ RandomHorizontalFlip, \
Resize, CenterCrop, RandomAffine, GaussianBlur, RandomAutocontrast, InterpolationMode, AugMix, RandomErasing, \ Resize, RandomAutocontrast, InterpolationMode, RandomErasing, \
RandomEqualize, RandomPosterize, RandomPerspective, RandomGrayscale RandomEqualize, RandomPosterize, RandomPerspective, RandomGrayscale
import matplotlib import matplotlib
@ -24,11 +21,9 @@ from torch.cuda import is_available
from torch import no_grad, save, Tensor, load, device from torch import no_grad, save, Tensor, load, device
from datetime import datetime from datetime import datetime
from distutils.util import strtobool from distutils.util import strtobool
from intel_extension_for_pytorch import optimize
CI = bool(strtobool(environ['CI'])) CI = bool(strtobool(environ['CI']))
# device = device('cuda' if is_available() else 'cpu') device = device('cuda' if is_available() else 'cpu')
device = 'xpu'
model_path: str = join(datadir(), 'artifact', 'vggface2_facenet.pth') model_path: str = join(datadir(), 'artifact', 'vggface2_facenet.pth')
input_shape: int = 256 input_shape: int = 256
@ -130,7 +125,7 @@ optimizer = Adam(params=[
{'params': model_gpu[1].parameters(), 'lr': 1e-3}, {'params': model_gpu[1].parameters(), 'lr': 1e-3},
]) ])
model, optimizer = optimize(model=model, optimizer=optimizer) # model, optimizer = optimize(model=model, optimizer=optimizer)
scheduler = lr_scheduler.StepLR(optimizer=optimizer, step_size=10, gamma=0.9) scheduler = lr_scheduler.StepLR(optimizer=optimizer, step_size=10, gamma=0.9)
epochs = 100 epochs = 100

View File

@ -7,7 +7,7 @@ from torchvision.transforms import Compose, RandomResizedCrop, RandomRotation, T
RandomHorizontalFlip, \ RandomHorizontalFlip, \
Resize, RandomAffine, RandomAdjustSharpness, RandomAutocontrast, RandomEqualize, GaussianBlur, Normalize Resize, RandomAffine, RandomAdjustSharpness, RandomAutocontrast, RandomEqualize, GaussianBlur, Normalize
from numpy import arange, ceil, full, float32, uint8, amax, amin from numpy import arange, ceil, full, float32, uint8, amax, amin
from torchsummary import summary from torchinfo import summary
from torch.nn import CrossEntropyLoss from torch.nn import CrossEntropyLoss
from torch.cuda.amp.grad_scaler import GradScaler from torch.cuda.amp.grad_scaler import GradScaler
from torch.cuda.amp import autocast from torch.cuda.amp import autocast

View File

@ -2,7 +2,6 @@ from torch import zeros, load, no_grad, stack, float32, nn
from torch.utils.data import DataLoader from torch.utils.data import DataLoader
from torchvision.datasets import ImageFolder from torchvision.datasets import ImageFolder
from torchvision.transforms import Compose, functional, ToTensor, Resize, ConvertImageDtype from torchvision.transforms import Compose, functional, ToTensor, Resize, ConvertImageDtype
from torch2trt import torch2trt
from PIL import Image from PIL import Image
from numpy import array from numpy import array
from os import listdir, makedirs from os import listdir, makedirs

View File

View File

@ -1,8 +1,9 @@
from cv2 import VideoCapture, getBuildInformation from cv2 import VideoCapture, getBuildInformation
from torchvision.models.mobilenetv3 import MobileNetV3 from torchvision.models.mobilenetv3 import MobileNetV3
from settings import datadir
print(getBuildInformation()) print(getBuildInformation())
sample_video = VideoCapture('/home/tomokazu/PycharmProjects/helloproject-ai/koi_ing.webm') sample_video = VideoCapture('/movie_processing/koi_ing.webm')
assert sample_video.isOpened() assert sample_video.isOpened()
ret = True ret = True

15
setenv.sh Executable file
View File

@ -0,0 +1,15 @@
#!/usr/bin/env bash
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
PYTHONPATH=$PYTHONPATH:$DIR
export PYTHONPATH
export DATA_DIR="${PYTHONPATH%/}/data"
type conda >/dev/null 2>&1 && conda activate helloproject-ai

View File

@ -1,5 +1,5 @@
from functools import cache from functools import cache
from os import getcwd, pardir from os import getcwd, pardir, environ
from os.path import join, abspath, dirname from os.path import join, abspath, dirname
blog_list = ['angerme-ss-shin', 'angerme-amerika', 'angerme-new', 'juicejuice-official', 'tsubaki-factory', blog_list = ['angerme-ss-shin', 'angerme-amerika', 'angerme-new', 'juicejuice-official', 'tsubaki-factory',
@ -53,7 +53,7 @@ def theme_curator(theme: str, blog_id: str) -> str:
@cache @cache
def datadir(): def datadir():
return join('/home/tomokazu/PycharmProjects/helloproject-ai/', 'data') return environ['DATA_DIR']
request_header = { request_header = {

View File

@ -1,3 +1,4 @@
import time
from shutil import copyfile from shutil import copyfile
from insightface.app import FaceAnalysis from insightface.app import FaceAnalysis
from os import getcwd, listdir, makedirs from os import getcwd, listdir, makedirs
@ -15,7 +16,15 @@ if not isdir(argv[2]):
if not isfile(argv[1]): if not isfile(argv[1]):
exit(1) exit(1)
face_analysis = FaceAnalysis() face_analysis = FaceAnalysis(providers=[
# 'CUDAExecutionProvider',
# 'CPUExecutionProvider',
('TensorrtExecutionProvider', {
'trt_engine_cache_enable': True,
'trt_engine_cache_path': join(getcwd(), 'onnx_cache'),
'trt_fp16_enable': True,
})
], allowed_modules=['recognition', 'detection'])
face_analysis.prepare(ctx_id=0, det_size=(160, 160)) face_analysis.prepare(ctx_id=0, det_size=(160, 160))
print(argv) print(argv)
@ -35,6 +44,7 @@ makedirs(join(getcwd(), dir_name, "true"), exist_ok=True)
makedirs(join(getcwd(), dir_name, "false"), exist_ok=True) makedirs(join(getcwd(), dir_name, "false"), exist_ok=True)
images = [] images = []
begin = time.time()
for file in image_files: for file in image_files:
if isfile(join(getcwd(), argv[2], file)): if isfile(join(getcwd(), argv[2], file)):
# print(join(getcwd(), argv[2], file)) # print(join(getcwd(), argv[2], file))
@ -50,3 +60,5 @@ for file in image_files:
else: else:
copyfile(join(getcwd(), argv[2], file), join(getcwd(), dir_name, "false", file)) copyfile(join(getcwd(), argv[2], file), join(getcwd(), dir_name, "false", file))
print(f"{time.time() - begin}sec")

View File

@ -9,7 +9,7 @@ from asyncio import to_thread, gather, run
from aiofiles import open as a_open from aiofiles import open as a_open
valid_rate = 0.1 valid_rate = 0.1
SRC_DIR = join(r'/home/tomokazu/PycharmProjects/helloproject-ai/data/sample_set/') SRC_DIR = join(datadir(), 'sample_set')
DEST_DIR = join(datadir(), 'dataset') DEST_DIR = join(datadir(), 'dataset')
makedirs(DEST_DIR, exist_ok=True) makedirs(DEST_DIR, exist_ok=True)
@ -51,4 +51,3 @@ with tqdm(listdir(SRC_DIR)) as pbar:
coroutines.append(co) coroutines.append(co)
# print(name, file) # print(name, file)
run(waiting(coroutines)) run(waiting(coroutines))

View File

@ -0,0 +1,14 @@
from os import getcwd
from os.path import join
from onnxruntime import InferenceSession, SessionOptions
onnx_session = InferenceSession(
path_or_bytes="/home/tomokazu/.insightface/models/buffalo_l/w600k_r50.onnx",
providers=[
('TensorrtExecutionProvider', {
'trt_engine_cache_enable': True,
'trt_engine_cache_path': join(getcwd(), 'onnx_cache'),
'trt_fp16_enable': True,
})
]
)

17
test_script/trt_test.py Normal file
View File

@ -0,0 +1,17 @@
from torch import load, randn, float, half, jit
import torch_tensorrt
from torch.nn import Module
model: Module = load(
f='/home/tomokazu/PycharmProjects/helloproject-ai/data/artifact/facenet-tl_2023-05-28 23:05:09.874085/model.pth')
model.cuda()
model.eval()
example_input = randn(size=[1, 3, 224, 224]).float().cuda()
traced_script_module = jit.trace(model, example_inputs=[example_input])
tensorrt_module = torch_tensorrt.compile(module=traced_script_module, inputs=[example_input],
enabled_precisions={float, half},
truncate_long_and_double=True)
jit.save(tensorrt_module, "trt_test.ts")

View File

@ -1,23 +0,0 @@
from torchvision.transforms import Compose
import matplotlib.pyplot as plt
from numpy import transpose
import torchvision.datasets as datasets
from torchvision import models
from PIL import Image
print(dir(datasets))
def show_image(x):
fig = plt.figure(figsize=(10, 10))
for s in range(len(x)):
img = x[s].numpy()
img = transpose(img, (1, 2, 0))
ax1 = fig.add_subplot(1, len(x), s + 1)
plt.axis('off')
plt.imshow(img)
model = models.inception_v3(models.Inception_V3_Weights)
print(model._get_name())

View File

@ -1,5 +0,0 @@
from super_gradients.training.models import get
yolo_nas = get(model_name='yolo_nas_l', pretrained_weights='coco').cuda()
yolo_nas.predict('橋迫鈴=angerme-new=12687767841-1.jpg', conf=0.8).show()