Làm cách nào để ngăn Google Colab ngắt kết nối?


122

H: Có cách nào lập trình ngăn Google Colab ngắt kết nối khi hết thời gian chờ không?

Phần sau mô tả các điều kiện khiến sổ ghi chép tự động ngắt kết nối:

Máy tính xách tay Google Colab có thời gian chờ không hoạt động là 90 phút và thời gian chờ tuyệt đối là 12 giờ. Điều này có nghĩa là, nếu người dùng không tương tác với sổ ghi chép Google Colab của mình trong hơn 90 phút, phiên bản của nó sẽ tự động bị chấm dứt. Ngoài ra, thời gian tồn tại tối đa của một phiên bản Colab là 12 giờ.

Đương nhiên, chúng tôi muốn tự động tiết kiệm tối đa phiên bản mà không cần phải tương tác thủ công với nó liên tục . Ở đây tôi sẽ giả định các yêu cầu hệ thống thường thấy:

  • Hệ điều hành Ubuntu 18 LTS / Windows 10 / Mac
  • Trong trường hợp các hệ thống dựa trên Linux, sử dụng các DE phổ biến như Gnome 3 hoặc Unity
  • Trình duyệt Firefox hoặc Chromium

Tôi nên chỉ ra ở đây rằng hành vi như vậy không vi phạm Điều khoản Sử dụng của Google Colab , mặc dù nó không được khuyến khích theo Câu hỏi thường gặp của họ (nói ngắn gọn: về mặt đạo đức, bạn không thể sử dụng hết GPU nếu bạn không thực sự cần nó ).


Giải pháp hiện tại của tôi rất ngu ngốc:

  • Đầu tiên, tôi tắt trình bảo vệ màn hình, vì vậy sreen của tôi luôn bật.
  • Tôi có một bảng Arduino, vì vậy tôi chỉ biến nó thành một chiếc usb cao su và làm cho nó mô phỏng tương tác người dùng nguyên thủy khi tôi ngủ (chỉ vì tôi có nó trong tay cho các trường hợp sử dụng khác).

Có những cách nào tốt hơn?


1
Tôi cũng đang băn khoăn về cùng một câu hỏi. Sẽ hữu ích cho sinh viên trong thời gian bảo vệ luận văn.
Dmitrii

2
"Thời gian chờ không hoạt động là 90 phút ... nếu người dùng không tương tác với sổ ghi chép Google Colab của mình trong hơn 90 phút, phiên bản của nó sẽ tự động bị chấm dứt." Điều đó thật tệ vì không thể sử dụng kerastuner. Nhân viên của Google cần phải suy nghĩ kỹ hơn, nếu họ thực sự muốn công chúng sử dụng kerastuner.
Geoffrey Anderson

1
Làm cách nào để ngăn tập lệnh này thực thi?
Murtaza Kamal

Không phải mã mà một trọng lượng nhỏ và phím xóa lùi trên hệ thống của bạn có thể giúp bạn. Hy vọng bạn đã hiểu!
Vikalp Jain

Câu trả lời:


110

Chỉnh sửa: Rõ ràng giải pháp này rất dễ dàng và không cần bất kỳ JavaScript nào. Chỉ cần tạo một ô mới ở dưới cùng có dòng sau:

while True:pass

bây giờ hãy giữ ô trong trình tự chạy để vòng lặp vô hạn không dừng lại và do đó giữ cho phiên của bạn tồn tại.

Phương pháp cũ: Đặt khoảng thời gian javascript để nhấp vào nút kết nối sau mỗi 60 giây. Mở cài đặt nhà phát triển (trong trình duyệt web của bạn) bằng Ctrl + Shift + I, sau đó nhấp vào tab bảng điều khiển và nhập vào bảng điều khiển nhắc. (đối với mac, nhấn Option + Command + I)

function ConnectButton(){
    console.log("Connect pushed"); 
    document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click() 
}
setInterval(ConnectButton,60000);

1
Nó nói Uncaught TypeError: Không thể đọc thuộc tính 'click' của null tại ConnectButton
Shaida Muhammad

1
Có vẻ như câu trả lời của bạn đã lỗi thời
jgauth

1
Đã sửa lỗi bằng cách cập nhật bộ chọn JS
Tanay Karve

4
Trong Chrome, bạn có thể tạo dấu trang để kích hoạt đoạn mã này bằng một cú nhấp chuột. Chỉ cần tạo dấu trang với URL sau: javascript:void(setInterval(function(){ console.log("Connect pushed"); document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click(); },60000))(phiên bản một lớp lót của cùng một lệnh). Tôi không chắc liệu điều này có hoạt động trên các trình duyệt khác hay không
pdpino

1
Câu trả lời này có vẻ đã lỗi thời, Không phù hợp với tôi!
Shahriar Kabir Khan

48

Vì id của nút kết nối hiện đã được thay đổi thành "nút kết nối cột", mã sau đây có thể được sử dụng để tiếp tục nhấp vào nút.

function ClickConnect(){
    console.log("Clicked on connect button"); 
    document.querySelector("colab-connect-button").click()
}
setInterval(ClickConnect,60000)

Nếu vẫn không có kết quả, hãy làm theo các bước dưới đây:

  1. Nhấp chuột phải vào nút kết nối (ở phía trên bên phải của cột)
  2. Nhấp vào kiểm tra
  3. Lấy id HTML của nút và thay thế trong mã sau
function ClickConnect(){
    console.log("Clicked on connect button"); 
    document.querySelector("Put ID here").click() // Change id here
}
setInterval(ClickConnect,60000)

5
Đây là giải pháp hiện tại theo ID nút mới (tháng 2 năm 2020)
Kaushal28 ngày

Nếu google cố gắng làm cho điều này không hoạt động (ví dụ: đặt nó thành một lớp và có nhiều nút ẩn giả mạo với cùng một lớp đó), bạn luôn có thể thay vì bước 3: nhấp chuột phải -> Sao chép -> Sao chép Đường dẫn JS
Banjer_HD

Vẫn gặp sự cố tương tự Thời gian chạy bị ngắt kết nối, Thời gian chạy bị ngắt kết nối do không hoạt động
SUSHMA KUMARI

3
Làm cách nào để ngăn tập lệnh này thực thi?
Murtaza Kamal

2
@MurtazaKamal Crtl + Shift + I, Đi tới Nguồn và nhấp vào nút tạm dừng.
Faisal Maqbool

19

Điều này đang làm việc cho tôi -

chạy mã sau trong bảng điều khiển và nó sẽ ngăn bạn ngắt kết nối. Ctrl + Shift + i để mở chế độ xem thanh tra. Sau đó vào bảng điều khiển.

function ClickConnect(){
    console.log("Working"); 
    document.querySelector("colab-toolbar-button#connect").click() 
}
setInterval(ClickConnect,60000)

Cách ngăn chặn google colab ngắt kết nối


1
Cảm ơn điều này cũng hoạt động tốt cho tôi. (Tôi đã để lại bình luận tương tự ở đây vào tuần trước nhưng nó đã biến mất. Điều quan trọng là không mất công việc, vì vậy câu trả lời này xứng đáng được phản hồi tích cực.)
Geoffrey Anderson

Không hoạt động, vẫn bị ngắt kết nối. (Sử dụng Trình duyệt Firefox 74.0 (64-bit)).
hafiz031

Điều này cũng hoạt động ngay cả khi bạn để cửa sổ trình duyệt thu nhỏ và hoạt động với các ứng dụng khác?
HarryS

16

Đối với tôi các ví dụ sau:

  • document.querySelector("#connect").click() hoặc là
  • document.querySelector("colab-toolbar-button#connect").click() hoặc là
  • document.querySelector("colab-connect-button").click()

đang ném lỗi.

Tôi đã phải điều chỉnh chúng theo những điều sau:

Phiên bản 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)

Phiên bản 2: Nếu bạn muốn có thể dừng chức năng, đây là mã mới:

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();

Để dừng, hãy gọi:

stopClickConnect();

Đối với tôi, đây là giải pháp duy nhất không gây ra lỗi. Cảm ơn
pairon

Tôi đã thử các phương pháp trên và một vài blog khác. Cho đến nay, và có liên quan đến ngày nay, cả hai mã của bạn đều hoạt động không có lỗi. Cảm ơn bạn :)
HarryS

14

tạo mã python trong máy tính của bạn bằng pynput

from pynput.mouse import Button, Controller
import time

mouse = Controller()

while True:
    mouse.click(Button.left, 1)
    time.sleep(30)

Chạy mã này trong Máy tính để bàn của bạn, sau đó trỏ chuột mũi tên lên (bảng điều khiển bên trái của cột - phần tệp) cấu trúc thư mục trên bất kỳ thư mục nào, mã này sẽ tiếp tục nhấp vào thư mục cứ sau 30 giây, do đó nó sẽ mở rộng và thu nhỏ sau mỗi 30 giây để phiên của bạn sẽ không hết hạn Quan trọng - bạn phải chạy mã này trong máy tính của mình


Tôi đã thử điều này và gặp phải DisplayNameError khi nhập pynput. Có lẽ là do chúng tôi chỉ có thể truy cập colab thông qua trình duyệt (trong phiên thời gian chạy được lưu trữ) chứ không phải bàn phím / chuột, v.v.
HasnainMamdani

Tôi nghĩ, Bạn đã hiểu sai ý. Colab không được truy cập bằng python. Chỉ con chuột của bạn được điều khiển bằng mã trên (vì để mô phỏng, tương tác chuột với trình duyệt). Khắc phục sự cố thư viện trong máy tính cục bộ
Seyon Seyon

12

Thay vì nhấp vào nút kết nối, tôi chỉ cần nhấp vào nút nhận xét để giữ cho phiên của tôi tồn tại. (Tháng 8-2020)

function ClickConnect(){

console.log("Working"); 
document.querySelector("#comments > span").click() 
}
setInterval(ClickConnect,5000)

11

Tôi sử dụng Chương trình Macro để định kỳ nhấp vào nút RAM / Disk để huấn luyện mô hình suốt đêm. Bí quyết là định cấu hình một chương trình macro để nhấp vào Nút thanh công cụ Ram / Disk Colab hai lần với một khoảng thời gian ngắn giữa hai lần nhấp để ngay cả khi Runtime bị ngắt kết nối, nó sẽ kết nối lại. (lần nhấp đầu tiên dùng để đóng hộp thoại và lần nhấp thứ hai dùng để KẾT NỐI). Tuy nhiên, bạn vẫn phải để máy tính xách tay của mình mở cả đêm và có thể ghim tab Colab.


8

Các câu trả lời trên với sự trợ giúp của một số tập lệnh có thể hoạt động tốt. Tôi có một giải pháp (hoặc một loại thủ thuật) cho tình trạng ngắt kết nối khó chịu mà không có tập lệnh, đặc biệt là khi chương trình của bạn phải đọc dữ liệu từ ổ đĩa google của bạn, chẳng hạn như đào tạo mô hình mạng học sâu, nơi sử dụng tập lệnh để thực hiện reconnecthoạt động không có ích vì một lần bạn ngắt kết nối với cột của mình, chương trình vừa mới chết, bạn nên kết nối lại với ổ đĩa google theo cách thủ công để làm cho mô hình của bạn có thể đọc lại tập dữ liệu, nhưng các tập lệnh sẽ không làm được điều đó.
Tôi đã thử nghiệm nó nhiều lần và nó hoạt động tốt.
Khi bạn chạy chương trình trên trang colab bằng trình duyệt (tôi sử dụng Chrome), chỉ cần nhớ rằng không thực hiện bất kỳ thao tác nào với trình duyệt của bạn khi chương trình của bạn bắt đầu chạy, chẳng hạn như: chuyển sang các trang web khác, mở hoặc đóng một trang web khác và Vì vậy, chỉ cần để nó ở đó và đợi chương trình của bạn chạy xong, bạn có thể chuyển sang phần mềm khác, chẳng hạn như pycharm để tiếp tục viết mã của bạn nhưng không chuyển sang trang web khác. Tôi không biết tại sao mở hoặc đóng hoặc chuyển sang các trang khác sẽ gây ra sự cố kết nối của trang google colab, nhưng mỗi lần tôi cố gắng làm phiền trình duyệt của mình, như thực hiện một số công việc tìm kiếm, kết nối của tôi với colab sẽ sớm bị hỏng.


Tôi sẽ thêm vào câu trả lời của bạn rằng Firefox đang hoạt động tốt với thủ thuật này. Nhưng đối với tôi, tôi đã tắt chế độ ngủ trên máy mac của mình và đặt cửa sổ trình duyệt trước tất cả các cửa sổ khác như thể tôi đang tích cực làm việc trên đó. Tôi đã giữ nó cả đêm và nó hoạt động. Không có thủ thuật javascript nào hoạt động. Một lưu ý là tôi đang sử dụng Google Colab Pro: vì vậy tôi không chắc liệu điều này có hoạt động với colab miễn phí hay không.
Yasser Sinjab

@Yasser Sinjab Cảm ơn bạn đã bổ sung, tôi sử dụng phiên bản miễn phí và nó hoạt động tốt.
Hu Xixi

8

Thử đi:

function ClickConnect(){
  console.log("Working"); 
  document
    .querySelector("#top-toolbar > colab-connect-button")
    .shadowRoot
    .querySelector("#connect")
    .click()
}

setInterval(ClickConnect,60000)

6

Sử dụng trăn selen

from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time   

driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver')

notebook_url = ''
driver.get(notebook_url)

# run all cells
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.F9)
time.sleep(5)

# click to stay connected
start_time = time.time()
current_time = time.time()
max_time = 11*59*60 #12hours

while (current_time - start_time) < max_time:
    webdriver.ActionChains(driver).send_keys(Keys.ESCAPE).perform()
    driver.find_element_by_xpath('//*[@id="top-toolbar"]/colab-connect-button').click()
    time.sleep(30)
    current_time = time.time()

6

Tôi không tin rằng các giải pháp JavaScript hoạt động nữa. Tôi đã làm điều đó từ trong sổ ghi chép của mình với:

    from IPython.display import display, HTML
    js = ('<script>function ConnectButton(){ '
           'console.log("Connect pushed"); '
           'document.querySelector("#connect").click()} '
           'setInterval(ConnectButton,3000);</script>')
    display(HTML(js))

Khi bạn lần đầu tiên thực hiện Chạy tất cả (trước khi mã JavaScript hoặc Python bắt đầu), bảng điều khiển hiển thị:

Connected to 
wss://colab.research.google.com/api/kernels/0e1ce105-0127-4758-90e48cf801ce01a3/channels?session_id=5d8...

Tuy nhiên, bất cứ khi nào JavaScript chạy, bạn sẽ thấy phần console.log, nhưng phần nhấp chuột chỉ đơn giản là:

Connect pushed

Uncaught TypeError: Cannot read property 'click' of null
 at ConnectButton (<anonymous>:1:92)

Những người khác đề xuất tên nút đã thay đổi thành # colab-connect-button, nhưng điều đó gây ra lỗi tương tự.

Sau khi thời gian chạy được bắt đầu, nút sẽ được thay đổi để hiển thị RAM / DISK và một menu thả xuống được hiển thị. Nhấp vào menu thả xuống sẽ tạo ra một cái mới <DIV class=goog menu...>mà trước đây chưa có trong DOM, với 2 tùy chọn "Kết nối với thời gian chạy được lưu trữ" và "Kết nối với thời gian chạy cục bộ". Nếu cửa sổ bảng điều khiển đang mở và hiển thị các phần tử, bạn có thể thấy DIV này xuất hiện khi bạn nhấp vào phần tử thả xuống. Chỉ cần di chuyển tiêu điểm chuột giữa hai tùy chọn trong cửa sổ mới xuất hiện sẽ thêm các phần tử bổ sung vào DOM, ngay khi chuột mất tiêu điểm, chúng sẽ bị xóa hoàn toàn khỏi DOM, ngay cả khi không cần nhấp chuột.


đồng ý, có giải pháp nào không
Talha Anwar

5

Tôi đã thử các mã ở trên nhưng chúng không hoạt động với tôi. Vì vậy, đây là mã JS của tôi để kết nối lại.

let interval = setInterval(function(){
let ok = document.getElementById('ok');
if(ok != null){
   console.log("Connect pushed");
ok.click();
}},60000)

Bạn có thể sử dụng nó theo cách tương tự (chạy nó trên bảng điều khiển của trình duyệt của bạn) để chạy nó. Nếu bạn muốn dừng tập lệnh, bạn có thể nhập clearInterval(interval)và muốn chạy lại setInterval(interval).

Tôi hy vọng cái này sẽ giúp bạn.


5

Đã cập nhật một. nó hoạt động cho tôi.

function ClickConnect(){
console.log("Working"); 
document.querySelector("paper-icon-button").click()
}
Const myjob = setInterval(ClickConnect, 60000)

Nếu không hiệu quả với bạn, hãy thử xóa nó bằng cách chạy:

clearInterval(myjob)


4

Cái này phù hợp với tôi (có vẻ như họ đã thay đổi tên lớp hoặc id của nút):

function ClickConnect(){
    console.log("Working"); 
    document.querySelector("colab-connect-button").click() 
}
setInterval(ClickConnect,60000)


3

Tôi khuyên bạn nên sử dụng JQuery (Có vẻ như Co-lab bao gồm JQuery theo mặc định).

function ClickConnect(){
  console.log("Working");
  $("colab-toolbar-button").click();
}
setInterval(ClickConnect,60000);

Cái này không hoạt động:Uncaught ReferenceError: $ is not defined at ClickConnect (<anonymous>:3:3)
Kel Solaar

3

Tôi gặp sự cố với các hàm javascript này:

function ClickConnect(){
    console.log("Clicked on connect button"); 
    document.querySelector("colab-connect-button").click()
}
setInterval(ClickConnect,60000)

Họ in "Đã nhấp vào nút kết nối" trên bảng điều khiển trước khi nút thực sự được nhấp. Như bạn có thể thấy từ các câu trả lời khác nhau trong chủ đề này, id của nút kết nối đã thay đổi một vài lần kể từ khi Google Colab ra mắt. Và nó cũng có thể được thay đổi trong tương lai. Vì vậy, nếu bạn định sao chép một câu trả lời cũ từ chuỗi này, nó có thể nói "Đã nhấp vào nút kết nối" nhưng thực tế có thể không làm được điều đó. Tất nhiên nếu nhấp chuột không hoạt động, nó sẽ báo lỗi trên bảng điều khiển nhưng nếu bạn không vô tình nhìn thấy nó thì sao? Vì vậy, tốt hơn bạn nên làm điều này:

function ClickConnect(){
    document.querySelector("colab-connect-button").click()
    console.log("Clicked on connect button"); 
}
setInterval(ClickConnect,60000)

Và bạn chắc chắn sẽ thấy nếu nó thực sự hoạt động hay không.


3
function ClickConnect()
{
    console.log("Working...."); 
    document.querySelector("paper-button#comments").click()
}
setInterval(ClickConnect,600)

điều này làm việc cho tôi nhưng hãy sử dụng một cách khôn ngoan

học vui vẻ :)


3

giải pháp MỚI NHẤT sau đây phù hợp với tôi:

function ClickConnect(){
  colab.config
  console.log("Connnect Clicked - Start"); 
  document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click();
  console.log("Connnect Clicked - End");
};
setInterval(ClickConnect, 60000)

Cân nhắc bao gồm lời giải thích cho câu trả lời của bạn.
Suraj Subramanian

3

Đoạn mã bên dưới phù hợp với tôi. Tín dụng cho @ artur.k.space .

function ColabReconnect() {
    var dialog = document.querySelector("colab-dialog.yes-no-dialog");
    var dialogTitle = dialog && dialog.querySelector("div.content-area>h2");
    if (dialogTitle && dialogTitle.innerText == "Runtime disconnected") {
        dialog.querySelector("paper-button#ok").click();
        console.log("Reconnecting...");
    } else {
        console.log("ColabReconnect is in service.");
    }
}
timerId = setInterval(ColabReconnect, 60000);

Trong sổ tay Colab, nhấp iđồng thời Ctrl + Shift + phím. Sao chép và dán tập lệnh vào dòng nhắc. Sau đó nhấn Entertrước khi đóng trình chỉnh sửa.

Bằng cách đó, chức năng sẽ kiểm tra sau mỗi 60 giây để xem hộp thoại kết nối trên màn hình có hiển thị hay không, và nếu có, chức năng sẽ oktự động nhấp vào nút cho bạn.


3

Chà, tôi không phải là một người chơi trăn và tôi không biết công dụng thực sự của 'Colab' này là gì, tôi sử dụng nó như một hệ thống xây dựng lol. Và tôi đã từng thiết lập chuyển tiếp ssh trong đó, sau đó đặt mã này và chỉ để nó chạy và vâng nó hoạt động.

import getpass
authtoken = getpass.getpass()

3

Câu trả lời được bình chọn nhiều nhất chắc chắn phù hợp với tôi nhưng nó làm cho cửa sổ Quản lý phiên xuất hiện nhiều lần.
Tôi đã giải quyết điều đó bằng cách tự động nhấp vào nút làm mới bằng bảng điều khiển trình duyệt như bên dưới

function ClickRefresh(){
    console.log("Clicked on refresh button"); 
    document.querySelector("paper-icon-button").click()
}
setInterval(ClickRefresh, 60000)

Vui lòng đóng góp thêm đoạn trích cho điều này tại ý chính này https://gist.github.com/Subangkar/fd1ef276fd40dc374a7c80acc247613e


3

Mã này tiếp tục nhấp vào "Làm mới thư mục" trong ngăn trình khám phá tệp.

function ClickRefresh(){
  console.log("Working"); 
  document.querySelector("[icon='colab:folder-refresh']").click()
}
const myjob = setInterval(ClickRefresh, 60000)

1
Lưu ý rằng ngăn thư mục / trình khám phá tệp phải được mở rộng để ngăn này hoạt động.
Kel Solaar

2

Bạn cũng có thể sử dụng Python để nhấn các phím mũi tên. Tôi cũng đã thêm một chút ngẫu nhiên vào đoạn mã sau.

from pyautogui import press, typewrite, hotkey
import time
from random import shuffle

array = ["left", "right", "up", "down"]

while True:
    shuffle(array)
    time.sleep(10)
    press(array[0])
    press(array[1])
    press(array[2])
    press(array[3])

bằng cách bạn có thể muốn truy cập nội dung của array, mã này dường như được xác định hoàn toàn để nhấn L, R, U, D mỗi lần
Marc Laugharn

Tại sao khôngfor key in array: press(key)
PixelZerg

2

Chỉ cần chạy mã bên dưới sau ô bạn muốn chạy để lưu khỏi mất dữ liệu.

!python

Ngoài ra, để thoát khỏi chế độ này, hãy viết

exit()

2

Tôi đang tìm kiếm giải pháp cho đến khi tìm thấy một Python3 di chuyển chuột qua lại và nhấp chuột ngẫu nhiên, luôn ở cùng một vị trí, nhưng điều đó đủ để đánh lừa Colab nghĩ rằng tôi đang hoạt động trên sổ ghi chép và không ngắt kết nối.

import numpy as np
import time
import mouse
import threading

def move_mouse():
    while True:
        random_row = np.random.random_sample()*100
        random_col = np.random.random_sample()*10
        random_time = np.random.random_sample()*np.random.random_sample() * 100
        mouse.wheel(1000)
        mouse.wheel(-1000)
        mouse.move(random_row, random_col, absolute=False, duration=0.2)
        mouse.move(-random_row, -random_col, absolute=False, duration = 0.2)
        mouse.LEFT
        time.sleep(random_time)


x = threading.Thread(target=move_mouse)
x.start()

Bạn cần cài đặt các gói cần thiết: sudo -H pip3 install <package_name> Bạn chỉ cần chạy nó (trong máy cục bộ của bạn) với sudo(vì nó điều khiển chuột) và nó sẽ hoạt động, cho phép bạn tận dụng tối đa các phiên 12h của Colab.

Tín dụng: Đối với những người sử dụng Colab (Pro): Ngăn ngắt kết nối Phiên do không hoạt động


Tôi nghi ngờ bạn cũng muốn đặt nó trong một chủ đề riêng: D
FalconUA

@FalconUA, Đêm qua tôi để Colab chạy trên PC và khi tôi thức dậy vào buổi sáng, tôi thấy nó vẫn chạy. Tôi đoán tập lệnh hoạt động tốt, nhưng tôi nhận được một số cảnh báo về luồng, bạn nói đúng.
singrium

2

GNU Colab cho phép bạn chạy một môi trường máy tính để bàn liên tục tiêu chuẩn trên một phiên bản Colaboratory.

Thật vậy, nó chứa một cơ chế để không để máy móc chết vì chạy không tải.

Đây là một đoạn video minh họa .


2

Có lẽ nhiều giải pháp trước đây không còn hoạt động nữa. Ví dụ: mã dưới đây tiếp tục tạo các ô mã mới trong Colab, mặc dù vậy. Không nghi ngờ gì nữa, việc tạo ra một loạt các ô mã là một điều bất tiện. Nếu quá nhiều ô mã được tạo trong một số giờ chạy và không có đủ RAM, trình duyệt có thể bị treo.

Điều này được tạo lại một cách cố định các ô mã—

function ClickConnect(){
console.log("Working"); 
document.querySelector("colab-toolbar-button").click() 
}setInterval(ClickConnect,60000)

Nhưng tôi thấy mã bên dưới đang hoạt động, nó không gây ra bất kỳ vấn đề nào. Trong tab sổ ghi chép Colab, nhấp vào Ctrl + Shift + iphím đồng thời và dán mã bên dưới vào bảng điều khiển. 120000 khoảng là đủ.

function ClickConnect(){
console.log("Working"); 
document.querySelector("colab-toolbar-button#connect").click() 
}setInterval(ClickConnect,120000)

Tôi đã thử nghiệm mã này trong firefox, vào tháng 11 năm 2020. Nó cũng sẽ hoạt động trên chrome.


1
function ClickConnect(){
    console.log("Clicked on connect button"); 
    document.querySelector("connect").click() // Change id here
}
setInterval(ClickConnect,60000)

Hãy thử mã ở trên, nó đã làm việc cho tôi :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.