ETH官方钱包

前往
大廳
主題

Colab 機器人驗證或 GPU、RAM 用盡聲音提醒腳本

灰塵 | 2024-05-05 18:43:41 | 巴幣 100 | 人氣 242

如果有在搞機器學習的窮人應該都用過 Colab,就是一個能用 Google 提供的機器訓練模型的網站。
身為一個免費仔當然寧願去註冊十幾個 Google 帳號也不會考慮付錢,可是註冊的新帳號很容易被判定為機器人,時不時就要我驗證,我在專心打 code 當然就錯過了。
我看 Colab 使用的機器人驗證是 reCAPTCHA v3 ,以我的技術實在是無法破解。所以我退而求其次,做了一個聲音提醒的腳本,在機器人驗證一出現時就發出聲音立即通知我。然後我寫著寫著就順便連 GPU和RAM 用盡的那個彈窗也順便偵測了,Javascript 的程式碼如下:
//改成自己的音效網址
const audio = "https://upload.wikimedia.org/wikipedia/commons/0/05/Beep-09.ogg";

var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
        if (mutation.addedNodes.length) {
            mutation.addedNodes.forEach(function(node) {
                if (node.matches && node.matches('colab-recaptcha-dialog')) {
                    notify(audio);
                } else if (node.matches && node.matches('mwc-dialog')) {
                    notify(audio);
                }
            });
        }
    });
});
observer.observe(document.body, { childList: true});
function notify(url) {
    var audioElement = document.createElement('audio');
    audioElement.src = url;
    audioElement.autoplay = true;
    audioElement.loop = false;
    document.body.appendChild(audioElement);
}

以上程式碼可以在 Colab 上按 F12 開開發人員工具,貼到控制臺執行。不過我個人是直接去這裡把程式碼縮小後寫到瀏覽器書籤作為書籤腳本,這樣每次按一下書籤就可以了,當然如果你要寫成油猴腳本也行。以下為我做的書籤JS代碼,如果要自己做記得最前面加 javascript: 再貼上:
javascript:const audio="https://upload.wikimedia.org/wikipedia/commons/0/05/Beep-09.ogg";var observer=new MutationObserver((function(o){o.forEach((function(o){o.addedNodes.length&&o.addedNodes.forEach((function(o){(o.matches&&o.matches("colab-recaptcha-dialog")||o.matches&&o.matches("mwc-dialog"))&?ify(audio)}))}))}));function notify(o){var e=document.createElement("audio");e.src=o,e.autoplay=!0,e.loop=!1,document.body.appendChild(e)}observer.observe(document.body,{childList:!0});

聽說網頁分頁會因為不在使用者畫面中被瀏覽器限制,所以驗證出現時腳本可能不會立即提醒,應該會晚一點,但確切運作方式我也不是完全明白。

我個人使用不是用這嗶的聲音,我自己用是把機器人驗證設為世紀帝國2被打僧侶招降的聲音,其他像 GPU 或 RAM 不足的彈窗用 Stronghold 的語音。這些聲音和程式碼都放我 Github,需要的話可以複製(應該沒人想聽這些吧XD )。

順便說一下,Colab 裡也能執行播放聲音,可以用 Python 執行 JS 的程式碼做到:
from google.colab import output
output.eval_js('new Audio("https://github.com/micr0dust/colab-useful-script/raw/main/sound/Victory_aoe3de.ogg?raw=true").play()')
我都放在最後執行,這樣模型跑完就會播放聲音提醒我。

送禮物贊助創作者 !
0
留言

創作回應

相關創作

更多創作