Q : 프로그래밍 방식으로 Google Colab 이 시간 초과시 연결 해제되는 것을 방지 할 수 있나요?
다음은 노트북이 자동으로 연결 해제되는 조건을 설명합니다.
Google Colab 노트북의 유휴 시간 제한은 90 분이고 절대 제한 시간은 12 시간입니다. 즉, 사용자가 90 분 이상 Google Colab 노트북과 상호 작용하지 않으면 인스턴스가 자동으로 종료됩니다. 또한 Colab 인스턴스의 최대 수명은 12 시간입니다.
당연히 우리는 수동으로 지속적으로 상호 작용할 필요없이 인스턴스에서 최대 값을 자동으로 압축하려고합니다 . 여기서는 일반적으로 볼 수있는 시스템 요구 사항을 가정합니다.
- Ubuntu 18 LTS / Windows 10 / Mac 운영 체제
- Linux 기반 시스템의 경우 Gnome 3 또는 Unity와 같은 인기있는 DE를 사용합니다.
- Firefox 또는 Chromium 브라우저
이러한 행동 이 Google Colab의 사용 약관을 위반하지 않는다는 점을 지적해야합니다. FAQ 에 따라 권장 되지는 않지만 ).
내 현재 솔루션은 매우 멍청합니다.
- 먼저 화면 보호기를 꺼서 화면이 항상 켜져 있습니다.
- 저는 Arduino 보드를 가지고 있으므로 고무 더키 USB 로 바꾸고 잠자는 동안 원시 사용자 상호 작용을 에뮬레이트합니다 (다른 사용 사례에 사용할 수 있기 때문에).
더 좋은 방법이 있습니까?
답변
편집 :
분명히 솔루션은 매우 쉽고 JavaScript가 필요하지 않습니다. 맨 아래에 다음 줄이있는 새 셀을 만듭니다.
while True:pass
이제 무한 루프가 중지되지 않고 세션이 계속 유지되도록 셀을 실행 순서로 유지하십시오.
이전 방법 :
60 초마다 연결 버튼을 클릭하도록 자바 스크립트 간격을 설정합니다. Ctrl + Shift + I를 사용하여 개발자 설정 (웹 브라우저에서)을 연 다음 콘솔 탭을 클릭하고 콘솔 프롬프트에 입력합니다. (Mac의 경우 Option + Command + I 누르기)
function ConnectButton(){
console.log("Connect pushed");
document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click()
}
setInterval(ConnectButton,60000);
답변
이제 연결 버튼의 ID가 “colab-connect-button”으로 변경되었으므로 다음 코드를 사용하여 버튼을 계속 클릭 할 수 있습니다.
function ClickConnect(){
console.log("Clicked on connect button");
document.querySelector("colab-connect-button").click()
}
setInterval(ClickConnect,60000)
그래도 작동하지 않으면 아래 단계를 따르십시오.
- 연결 버튼을 마우스 오른쪽 버튼으로 클릭합니다 (colab의 오른쪽 상단에 있음).
- 검사를 클릭하십시오
- 버튼의 HTML ID를 가져 와서 다음 코드로 대체합니다.
function ClickConnect(){
console.log("Clicked on connect button");
document.querySelector("Put ID here").click() // Change id here
}
setInterval(ClickConnect,60000)
답변
이것은 나를 위해 일하고 있습니다-
콘솔에서 다음 코드를 실행하면 연결이 끊어지지 않습니다. Ctrl + Shift + i를 사용하여 관리자보기를 엽니 다. 그런 다음 콘솔로 이동하십시오.
function ClickConnect(){
console.log("Working");
document.querySelector("colab-toolbar-button#connect").click()
}
setInterval(ClickConnect,60000)
Google Colab이 연결 해제되는 것을 방지하는 방법
답변
나를 위해 다음 예 :
document.querySelector("#connect").click()
또는document.querySelector("colab-toolbar-button#connect").click()
또는document.querySelector("colab-connect-button").click()
오류가 발생했습니다.
나는 그것들을 다음에 적응시켜야했다.
버전 1 :
function ClickConnect(){
console.log("Connnect Clicked - Start");
document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click();
console.log("Connnect Clicked - End");
};
setInterval(ClickConnect, 60000)
버전 2 :
기능을 중지하려면 새 코드는 다음과 같습니다.
var startClickConnect = function startClickConnect(){
var clickConnect = function clickConnect(){
console.log("Connnect Clicked - Start");
document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click();
console.log("Connnect Clicked - End");
};
var intervalId = setInterval(clickConnect, 60000);
var stopClickConnectHandler = function stopClickConnect() {
console.log("Connnect Clicked Stopped - Start");
clearInterval(intervalId);
console.log("Connnect Clicked Stopped - End");
};
return stopClickConnectHandler;
};
var stopClickConnect = startClickConnect();
중지하려면 다음으로 전화하십시오.
stopClickConnect();
답변
pynput을 사용하여 PC에 파이썬 코드 생성
from pynput.mouse import Button, Controller
import time
mouse = Controller()
while True:
mouse.click(Button.left, 1)
time.sleep(30)
데스크탑에서이 코드를 실행 한 다음 임의의 디렉토리에서 (colabs 왼쪽 패널-파일 섹션) 디렉토리 구조 위로 마우스 화살표를 가리 킵니다.이 코드는 30 초마다 디렉토리를 계속 클릭하므로 세션이 30 초마다 확장 및 축소됩니다. 만료 됨 중요-이 코드를 PC에서 실행해야합니다.
답변
연결 버튼을 클릭하는 대신 댓글 버튼을 클릭하여 세션을 유지합니다. (2020 년 8 월)
function ClickConnect(){
console.log("Working");
document.querySelector("#comments > span").click()
}
setInterval(ClickConnect,5000)
답변
저는 매크로 프로그램 을 사용 하여 주기적으로 RAM / 디스크 버튼을 클릭하여 밤새도록 모델을 훈련시킵니다. 비결은 두 번의 클릭 사이에 짧은 간격으로 Ram / Disk Colab 도구 모음 버튼을 두 번 클릭하도록 매크로 프로그램을 구성하여 런타임이 연결 해제 되더라도 다시 연결되도록하는 것입니다. (첫 번째 클릭은 대화 상자를 닫는 데 사용되고 두 번째 클릭은 다시 연결하는 데 사용됨). 그러나 여전히 노트북을 밤새 열어두고 Colab 탭을 고정해야합니다.