소프트웨어 결함 예측에 소프트웨어 시각화 및 전이 학습 사용
글의 동기는 소스 코드의 중간 표현을 피하고, 소스 코드를 이미지로 표현하고, 코드의 의미 정보를 직접 추출하여 결함 예측 성능을 향상시키는 것입니다.
먼저 아래 동기 예시를 보세요. File1.java와 File2.java의 두 예제에는 모두 if 문 1개, for 문 2개, 함수 호출 4개가 포함되어 있지만 코드의 의미와 구조적 특성은 다릅니다. 소스 코드를 이미지로 변환하면 서로 다른 코드를 구별하는 데 도움이 되는지 확인하기 위해 저자는 실험을 수행했습니다. 소스 코드를 문자의 ASCII 십진수에 따라 픽셀로 매핑하고 이를 픽셀 매트릭스로 배열한 후 이미지를 얻습니다. 소스 코드. 저자는 서로 다른 소스 코드 이미지 간에 차이가 있음을 지적합니다.
그림 1 동기 부여 예
이 기사의 주요 기여는 다음과 같습니다.
코드를 이미지로 변환하고 그로부터 의미 및 구조적 정보를 추출합니다. Self-Attention 메커니즘과 마이그레이션 학습을 결합하여 결함 예측을 구현합니다.
기사에서 제안한 모델 프레임워크는 그림 2에 나와 있으며 소스 코드 시각화와 심층 전이 학습 모델링의 두 단계로 구분됩니다.
Fig.2 Framework
1. 소스코드 시각화
본 글은 소스코드를 6개의 이미지로 변환하였으며, 그 과정은 그림 3과 같습니다. 소스 코드 문자의 10진수 ASCII 코드를 8비트 부호 없는 정수 벡터로 변환하고, 이러한 벡터를 행과 열로 정렬하고, 이미지 행렬을 생성합니다. 8비트 정수는 회색 레벨에 직접적으로 대응됩니다. 원본 데이터 세트가 작은 문제를 해결하기 위해 저자는 논문에서 색상 향상 기반의 데이터 세트 확장 방법을 제안했습니다. R, G, B 세 가지 색상 채널의 값을 정렬하고 결합하여 6가지 컬러 이미지를 생성합니다. 여기서는 매우 혼란스러워 보입니다. 채널 값을 변경한 후에는 의미 및 구조 정보가 변경되어야 합니다. 그렇죠? 그러나 저자는 그림 4와 같이 각주로 설명합니다.
그림 3 소스 코드 시각화 프로세스
그림 4 기사 각주 2
2. 이 기사에서는 DAN 네트워크를 사용하여 소스 코드의 의미 및 구조 정보를 캡처합니다. 중요한 정보를 표현하는 모델의 능력을 향상시키기 위해 저자는 원래 DAN 구조에 Attention 레이어를 추가했습니다. 교육 및 테스트 프로세스는 그림 5에 표시되어 있으며, 여기에서 conv1-conv5는 AlexNet에서 제공되고 4개의 완전히 연결된 레이어 fc6-fc9가 분류자로 사용됩니다. 저자는 새로운 프로젝트의 경우 딥러닝 모델을 훈련하려면 레이블이 지정된 데이터가 많이 필요하기 때문에 어렵다고 언급했습니다. 따라서 저자는 먼저 ImageNet 2012에서 사전 훈련된 모델을 훈련시킨 후, 사전 훈련된 모델의 매개변수를 초기 매개변수로 사용하여 모든 컨볼루셔널 레이어를 미세 조정함으로써 ImageNet 2012에서 코드 이미지와 이미지 간의 차이를 줄였습니다.
그림 5 훈련 및 테스트 과정3. 모델 훈련 및 예측
소스 프로젝트의 레이블이 지정된 코드와 대상 프로젝트의 레이블이 없는 코드에 대한 코드 이미지를 생성하여 모델로 보냅니다. 동시에 그들은 각각의 특징을 추출하기 위해 Convolutional 레이어와 Attention 레이어를 공유합니다. 완전 연결 계층에서 소스와 대상 간의 MK-MDD(Multi Kernel Variant Maximum Mean Discrepancy)를 계산합니다. Target에는 레이블이 없으므로 교차 엔트로피는 Source에 대해서만 계산됩니다. 모델은 미니 배치 확률적 경사하강법을 사용하여 손실 함수를 따라 학습됩니다. 500개 epoch의 각
쌍에 대해 최상의 F 측정값을 기반으로 epoch를 선택합니다. 실험 부분에서는 저자가 PROMISE 데이터 웨어하우스에 있는 모든 오픈 소스 Java 프로젝트를 선택하고 해당 프로젝트의 버전 번호, 클래스 이름, 버그 태그 유무를 수집했습니다. 버전 번호와 클래스 이름을 기반으로 github에서 소스 코드를 다운로드합니다. 마지막으로 10개의 Java 프로젝트에서 데이터가 수집되었습니다. 데이터 세트 구조는 그림 6에 나와 있습니다.프로젝트 내 결함 예측을 위해 기사에서는 비교를 위해 다음 기준 모델을 선택합니다.
교차 프로젝트 결함 예측을 위해 이 기사에서는 비교를 위해 다음 기준 모델을 선택합니다.
요약하자면, 2년 전의 논문이었지만 이 아이디어는 여전히 상대적으로 참신하며 다음과 같은 일련의 코드 중간 표현을 피합니다. AST로 코드를 이미지로 직접 변환하여 기능을 추출합니다. 하지만 여전히 혼란스럽습니다. 코드에서 변환된 이미지에 실제로 소스 코드의 의미 및 구조 정보가 포함되어 있습니까? 별로 설명하기 어려운 것 같아요, 하하. 나중에 몇 가지 실험적 분석을 수행해야 합니다.
위 내용은 소프트웨어 결함 예측에 소프트웨어 시각화 및 전이 학습 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











제목: Bonjour 소프트웨어 탐색 및 제거 방법 개요: 이 문서에서는 Bonjour 소프트웨어의 기능, 사용 범위 및 제거 방법을 소개합니다. 동시에 사용자의 요구에 맞게 Bonjour를 대체하는 다른 도구를 사용하는 방법도 설명합니다. 소개: Bonjour는 컴퓨터 및 네트워크 기술 분야의 일반적인 소프트웨어입니다. 일부 사용자에게는 이 기능이 생소할 수 있지만 일부 특정 상황에서는 매우 유용할 수 있습니다. Bonjour 소프트웨어가 설치되어 있지만 지금 제거하려는 경우

최근 많은 친구들이 WPSOffice에서 PPT 파일을 열 수 없는 경우 어떻게 해야 하는지 문의해 왔습니다. 다음으로 WPSOffice에서 PPT 파일을 열 수 없는 문제를 해결하는 방법에 대해 알아보겠습니다. 1. 먼저 WPSOffice를 열고 아래 그림과 같이 홈페이지에 들어갑니다. 2. 그런 다음 위의 검색창에 "문서 복구"라는 키워드를 입력한 후 아래 그림과 같이 클릭하여 문서 복구 도구를 엽니다. 3. 그런 다음 아래 그림과 같이 복구를 위해 PPT 파일을 가져옵니다.

CrystalDiskMark는 순차 및 무작위 읽기/쓰기 속도를 빠르게 측정하는 하드 드라이브용 소형 HDD 벤치마크 도구입니다. 다음으로 편집자님에게 CrystalDiskMark 소개와 crystaldiskmark 사용법을 소개하겠습니다~ 1. CrystalDiskMark 소개 CrystalDiskMark는 기계식 하드 드라이브와 솔리드 스테이트 드라이브(SSD)의 읽기 및 쓰기 속도와 성능을 평가하는 데 널리 사용되는 디스크 성능 테스트 도구입니다. ). 무작위 I/O 성능. 무료 Windows 응용 프로그램이며 사용자 친화적인 인터페이스와 다양한 테스트 모드를 제공하여 하드 드라이브 성능의 다양한 측면을 평가하고 하드웨어 검토에 널리 사용됩니다.
![Corsair iCUE 소프트웨어가 RAM을 감지하지 못함 [수정됨]](https://img.php.cn/upload/article/000/465/014/170831448976874.png?x-oss-process=image/resize,m_fill,h_207,w_330)
이 문서에서는 CorsairiCUE 소프트웨어가 Windows 시스템에서 RAM을 인식하지 못할 때 사용자가 취할 수 있는 단계를 살펴봅니다. CorsairiCUE 소프트웨어는 사용자가 컴퓨터의 RGB 조명을 제어할 수 있도록 설계되었지만 일부 사용자는 소프트웨어가 제대로 작동하지 않아 RAM 모듈을 감지할 수 없다는 사실을 발견했습니다. ICUE가 내 기억을 인식하지 못하는 이유는 무엇입니까? ICUE가 RAM을 올바르게 식별할 수 없는 주된 이유는 일반적으로 백그라운드 소프트웨어 충돌과 관련이 있습니다. 또한 잘못된 SPD 쓰기 설정으로 인해 이 문제가 발생할 수도 있습니다. CorsairIcue 소프트웨어가 RAM을 감지하지 못하는 문제 해결 CorsairIcue 소프트웨어가 Windows 컴퓨터에서 RAM을 감지하지 못하는 경우 다음 제안 사항을 따르십시오.

CrystalDiskInfo는 컴퓨터 하드웨어 장치를 확인하는 데 사용되는 소프트웨어입니다. 이 소프트웨어에서는 읽기 속도, 전송 모드, 인터페이스 등과 같은 컴퓨터 하드웨어를 확인할 수 있습니다! 그러면 이러한 기능 외에도 CrystalDiskInfo를 사용하는 방법과 CrystalDiskInfo가 정확히 무엇인지 정리해 보겠습니다! 1. CrystalDiskInfo의 유래 컴퓨터 호스트의 세 가지 주요 구성 요소 중 하나인 솔리드 스테이트 드라이브는 컴퓨터의 저장 매체이며 컴퓨터 데이터 저장을 담당합니다. 소비자 경험에 영향을 미칩니다. 소비자가 새 장치를 받으면 타사 소프트웨어나 기타 SSD를 사용하여 다음을 수행할 수 있습니다.

Bonjour는 LAN 내에서 네트워크 서비스를 검색하고 구성하기 위해 Apple에서 출시한 네트워크 프로토콜 및 소프트웨어입니다. 주요 역할은 동일한 네트워크에 연결된 장치 간을 자동으로 검색하고 통신하는 것입니다. Bonjour는 2002년 MacOSX10.2 버전에 처음 소개되었으며 현재 Apple 운영 체제에 기본적으로 설치되어 활성화되어 있습니다. 그 이후로 Apple은 Bonjour의 기술을 다른 제조업체에 공개했기 때문에 다른 많은 운영 체제와 장치도 Bonjour를 지원할 수 있습니다.

많은 사용자가 사무실에서 Adobe Illustrator CS6 소프트웨어를 사용하고 있으므로 Adobe Illustrator CS6에서 키보드 증분을 설정하는 방법을 알고 있습니까? 그러면 편집자가 Adobe Illustrator CS6에서 키보드 증분을 설정하는 방법을 알려줄 것입니다. 아래를 살펴보세요. 1단계: 아래 그림과 같이 Adobe Illustrator CS6 소프트웨어를 시작합니다. 2단계: 메뉴 바에서 [편집] → [기본 설정] → [일반] 명령을 차례로 클릭합니다. 3단계: [키보드 증분] 대화 상자가 나타나면 [키보드 증분] 텍스트 상자에 필요한 숫자를 입력한 후 마지막으로 [확인] 버튼을 클릭합니다. 4단계: 단축키 [Ctrl] 사용

Edge 브라우저를 사용하다 보면 가끔 호환되지 않는 소프트웨어가 함께 로드를 시도하는 경우가 있는데 무슨 일이 일어나고 있는 걸까요? 이 사이트에서는 Edge와 호환되지 않는 소프트웨어를 로드하는 문제를 해결하는 방법을 사용자에게 주의 깊게 소개합니다. Edge로 로드하려고 하는 호환되지 않는 소프트웨어를 해결하는 방법 솔루션 1: 시작 메뉴에서 IE를 검색하고 IE로 직접 액세스합니다. 해결 방법 2: 참고: 레지스트리를 수정하면 시스템 오류가 발생할 수 있으므로 주의해서 작업하십시오. 레지스트리 매개변수를 수정합니다. 1. 작동 중에 regedit를 입력하십시오. 2.\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Micros 경로를 찾으세요.
