"configurations": [
        {
            "name": "Python Debugger: Current File",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}",    // 현재 열려있는 파일 기준으로 실행.
            "env": {
                "PYTHONPATH": "${workspaceFolder}"  // 루트 디렉터리를 환경변수에 추가.
            }
        }
    ]

 

"cwd": "${fileDirname}"

"env": {

        "PYTHONPATH": "${workspaceFolder}"

}

 

cwd: 현재 파일 기준으로 실행

env: Python 환경변수 추가

ERROR) ImportError: DLL load failed while importing _rust

 

pip install cryptography==41.0.5 로 해결.

cryptography 버전 문제였다.



'Language > Python' 카테고리의 다른 글

VSCode launch.json 설정  (0) 2024.09.09
json 파일 줄 맞춰 정리하기  (0) 2022.04.26
rec to image  (0) 2022.04.07
Selenium으로 Chorme 크롤링 & 저장  (0) 2022.03.31
Python에서 Void Pointer 사용하기  (0) 2022.03.22

https://github.com/sovrasov/flops-counter.pytorch

 

GitHub - sovrasov/flops-counter.pytorch: Flops counter for convolutional networks in pytorch framework

Flops counter for convolutional networks in pytorch framework - GitHub - sovrasov/flops-counter.pytorch: Flops counter for convolutional networks in pytorch framework

github.com

 

 

From PyPI: pip install ptflops

or

From this repository: pip install --upgrade git+https://github.com/sovrasov/flops-counter.pytorch.git

 
    # pth
    eff_model = torchvision.models.efficientnet_b0()

    # Check FLOPS
    macs, params = get_model_complexity_info(eff_model, (3, 224, 224), as_strings=True, print_per_layer_stat=True, verbose=True)
    print('{:<30}   {:<8}'.format('Computational complexity : ', macs))
    print('{:<30}   {:<8}'.format('Number of parameters : ', params))

C/C+ - 일반 - 추가 포함 디렉터리

 - $(VIEWORKS_IMAGING_7_PATH)\sdk\cpp\include

 - $(VWGENICAM_ROOT_V3_0)\library\cpp\include\base

 

 

링커 - 일반 - 추가 라이브러리 디렉터리

 - $(VIEWORKS_IMAGING_7_PATH)\SDK\CPP\LIB\x64

 - $(VWGENICAM_ROOT_V3_0)\library\cpp\lib\win32_i86

 

 

링커 - 입력 - 추가 종속성

 - VwGigE.V7.lib

 - VwImageProcess.lib

'Deep Learning > Vision' 카테고리의 다른 글

PIP-Net 논문 정리  (0) 2023.02.16
FaceBoxes 논문 정리  (0) 2023.02.03
06. Vision Transform (작성중)  (0) 2022.05.13
05. Yolo 버전별 비교  (0) 2022.05.13
04. Faster RCNN [Vision, Object Detection]  (0) 2022.02.09

맨 위에

 

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

 

추가하면 된다.

 

※ Example Code ※

import torch
import torchvision.models as models
import struct
from torchsummary import summary
import ssl
ssl._create_default_https_context = ssl._create_unverified_context


def main():
    print('cuda device count: ', torch.cuda.device_count())
    # net = torch.load('vgg.pth')
    net = models.efficientnet_b0(pretrained=True)
    net = net.to('cuda:0')
    net = net.eval()
    print('model: ', net)
    # print('state dict: ', net.state_dict().keys())
    tmp = torch.ones(1, 3, 224, 224).to('cuda:0')
    print('input: ', tmp)
    out = net(tmp)

    print('output:', out)

    summary(net, (3, 224, 224))

'Deep Learning > Pytorch' 카테고리의 다른 글

Model FLOPS 계산하기  (0) 2023.08.03
C++, Pytorch 사용 예시 - Visual Studio 2019  (0) 2022.11.15
C++, Pytorch 적용하기 02 (.pt 만들기) - Visual Studio 2019  (0) 2022.11.02
33_Xception  (0) 2022.04.20
32_DenseNet  (0) 2022.04.11

https://school.programmers.co.kr/learn/courses/30/lessons/87377

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

※ 문제

Ax + By + C = 0으로 표현할 수 있는 n개의 직선이 주어질 때, 이 직선의 교점 중 정수 좌표에 별을 그리려 합니다.

예를 들어, 다음과 같은 직선 5개를

  • 2x - y + 4 = 0
  • -2x - y + 4 = 0
  • -y + 1 = 0
  • 5x - 8y - 12 = 0
  • 5x + 8y + 12 = 0

좌표 평면 위에 그리면 아래 그림과 같습니다.


이때, 모든 교점의 좌표는 (4, 1), (4, -4), (-4, -4), (-4, 1), (0, 4), (1.5, 1.0), (2.1, -0.19), (0, -1.5), (-2.1, -0.19), (-1.5, 1.0)입니다. 이 중 정수로만 표현되는 좌표는 (4, 1), (4, -4), (-4, -4), (-4, 1), (0, 4)입니다.

만약 정수로 표현되는 교점에 별을 그리면 다음과 같습니다.


위의 그림을 문자열로 나타낼 때, 별이 그려진 부분은 *, 빈 공간(격자선이 교차하는 지점)은 .으로 표현하면 다음과 같습니다.

이때 격자판은 무한히 넓으니 모든 별을 포함하는 최소한의 크기만 나타내면 됩니다.

따라서 정답은

입니다.

직선 A, B, C에 대한 정보가 담긴 배열 line이 매개변수로 주어집니다. 이때 모든 별을 포함하는 최소 사각형을 return 하도록 solution 함수를 완성해주세요.

 

 

 

 

※ 나의 풀이

식도 다 나와있어서 그렇게까지 어렵지는 않았다.

다만, 이 문제도 int의 범위를 넘어가는 변수가 있어서 long long을 이용해야 한다.

문제 풀기 전에 제약사항을 보자.

 

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<string> solution(vector<vector<int>> line) {
    vector<string> answer;
    
    // 정수 교차점 찾아주기
    long long max_x = -9223372036854775807, max_y = -9223372036854775807;
    long long min_x = 9223372036854775807, min_y = 9223372036854775807;
    vector<vector<long long>> cross_dots;
    for (int i = 0; i < line.size() - 1; i++)
    {
        for (int j = i + 1; j < line.size(); j++)
        {
            //vector<double> cross_dot = get_dot(
            //    line[i][0], line[i][1], line[i][2],
            //    line[j][0], line[j][1], line[j][2]
            //);
            long long A = line[i][0], B = line[i][1], E = line[i][2];
            long long C = line[j][0], D = line[j][1], F = line[j][2];

            vector<long long> cross_dot;
            long long cross_x = B * F - E * D;
            long long cross_y = E * C - A * F;
            long long mod = A * D - B * C;

            // 교차점이 없다면
            if (mod == 0) continue;
            // 정수가 아니면
            //if (!is_integer(cross_dot[0]) || !is_integer(cross_dot[1])) continue;
            if (cross_x % mod || cross_y % mod) continue;
            cross_dot.push_back(cross_x / mod);
            cross_dot.push_back(cross_y / mod);

            // x, y축 최소, 최대값 구해주기
            max_x = (max_x < cross_dot[0]) ? cross_dot[0] : max_x;
            min_x = (min_x > cross_dot[0]) ? cross_dot[0] : min_x;
            max_y = (max_y < cross_dot[1]) ? cross_dot[1] : max_y;
            min_y = (min_y > cross_dot[1]) ? cross_dot[1] : min_y;

            cross_dots.push_back(cross_dot);
        }
    }

    // cross_dots (0, 0) 기준으로 바꿔주기
    for (int i = 0; i < cross_dots.size(); i++)
    {
        cross_dots[i][0] -= min_x;
        cross_dots[i][1] -= min_y;
        //cross_dots[i][0] = cross_dots[i][0] + min_y;
        //cross_dots[i][1] = cross_dots[i][1] - min_x;
    }
    max_x -= min_x;
    min_x -= min_x;
    max_y -= min_y;
    min_y -= min_y;

    // answer 만들어주기
    string tmp;
    for (int i = 0; i <= max_x; i++)
    {
        tmp += ".";
    }
    for (int i = 0; i <= max_y; i++)
    {
        answer.push_back(tmp);
    }

    for (int i = 0; i < cross_dots.size(); i++)
    {
        long long x = cross_dots[i][1];
        long long y = cross_dots[i][0];
        answer[x][y] = '*';
    }

    reverse(answer.begin(), answer.end());
    
    return answer;
}

'알고리즘 > Coding Test' 카테고리의 다른 글

n^2 배열 자르기 C++  (0) 2023.05.14
피로도 C++  (0) 2023.05.12
k진수에서 소수 개수 구하기 C++  (0) 2023.05.06
주차 요금 계산 C++  (0) 2023.05.06
양궁 대회 C++  (0) 2023.04.26

https://school.programmers.co.kr/learn/courses/30/lessons/87390

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

※ 문제

정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다.

  • n행 n열 크기의 비어있는 2차원 배열을 만듭니다.
  • i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다.
    • 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다.
  • 1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다.
  • 새로운 1차원 배열을 arr이라 할 때, arr[left], arr[left+1], ..., arr[right]만 남기고 나머지는 지웁니다.

정수 n, left, right가 매개변수로 주어집니다. 주어진 과정대로 만들어진 1차원 배열을 return 하도록 solution 함수를 완성해주세요.

 

※ 나의 풀이

처음에는 무작정 풀이 했지만 절반 이상이 시간초과가 발생했다.

그래서 배열의 규칙을 찾았다.

반복문의 범위를 left ~ right로 설정한다.

행 = i / n

열 = i % n

행 >= 열 → 행 + 1

행 < 열 → 열 + 1

위의 규칙으로 진행하면 해결된다.

 

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int n, long long left, long long right) {
    vector<int> answer;
    
    int row = 0, col = 0, tmp = 0;
    for (long long i = left; i <= right; i++)
    {
        row = i / n;
        col = i % n;
        
        tmp = (row >= col) ? row + 1 : col + 1;
        answer.push_back(tmp);
    }
    
    return answer;
}

 

'알고리즘 > Coding Test' 카테고리의 다른 글

교점에 별 만들기 C++  (0) 2023.05.17
피로도 C++  (0) 2023.05.12
k진수에서 소수 개수 구하기 C++  (0) 2023.05.06
주차 요금 계산 C++  (0) 2023.05.06
양궁 대회 C++  (0) 2023.04.26

https://school.programmers.co.kr/learn/courses/30/lessons/87946

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

※ 문제

XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다.

이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데, 한 유저가 오늘 이 던전들을 최대한 많이 탐험하려 합니다. 유저의 현재 피로도 k와 각 던전별 "최소 필요 피로도", "소모 피로도"가 담긴 2차원 배열 dungeons 가 매개변수로 주어질 때, 유저가 탐험할수 있는 최대 던전 수를 return 하도록 solution 함수를 완성해주세요.

제한사항

  • k는 1 이상 5,000 이하인 자연수입니다.
  • dungeons의 세로(행) 길이(즉, 던전의 개수)는 1 이상 8 이하입니다.
    • dungeons의 가로(열) 길이는 2 입니다.
    • dungeons의 각 행은 각 던전의 ["최소 필요 피로도", "소모 피로도"] 입니다.
    • "최소 필요 피로도"는 항상 "소모 피로도"보다 크거나 같습니다.
    • "최소 필요 피로도"와 "소모 피로도"는 1 이상 1,000 이하인 자연수입니다.
    • 서로 다른 던전의 ["최소 필요 피로도", "소모 피로도"]가 서로 같을 수 있습니다.

 

 

※ 나의 풀이

모든 경우의 수를 고려해야 하므로, DFS를 이용하여 문제 풀이를 진행했다.

 

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<vector<int>> dg;
int K = 0, answer = 0;
vector<bool> ch;

void DFS(int answer_cnt, int kk)
{
    if (kk < 0) return;

    answer = max(answer, answer_cnt);

    for (int i = 0; i < ch.size(); i++)
    {
        if (!ch[i] && kk >= dg[i][0])
        {
            ch[i] = true;
            DFS(answer_cnt + 1, kk - dg[i][1]);
            ch[i] = false;
        }
    }
}

int solution(int k, vector<vector<int>> dungeons) {
    
    K = k;
    dg = dungeons;
    for (int i = 0; i < dg.size(); i++) ch.push_back(false);

    // DFS로 접근하기
    DFS(0, K);
    
    return answer;
}

'알고리즘 > Coding Test' 카테고리의 다른 글

교점에 별 만들기 C++  (0) 2023.05.17
n^2 배열 자르기 C++  (0) 2023.05.14
k진수에서 소수 개수 구하기 C++  (0) 2023.05.06
주차 요금 계산 C++  (0) 2023.05.06
양궁 대회 C++  (0) 2023.04.26

+ Recent posts