Answers:
我最终想通了。地点:
import warnings
warnings.filterwarnings('ignore')
里面~/.ipython/profile_default/startup/disable-warnings.py
。如果有其他人遇到同一问题,我将保留此问题和答案以供记录。
经常看到一次警告很有用。可以通过以下方式设置:
warnings.filterwarnings(action='once')
warnings.filterwarnings('ignore')
在脚本的开头进行设置,仍然会收到警告。是否与我使用TPU加速器这一事实有关,在这种情况下TPU是否具有特定的行为……我想知道。我不明白。
通过在单元格中运行以下代码,我将警告隐藏在粉红色框中:
from IPython.display import HTML
HTML('''<script>
code_show_err=false;
function code_toggle_err() {
if (code_show_err){
$('div.output_stderr').hide();
} else {
$('div.output_stderr').show();
}
code_show_err = !code_show_err
}
$( document ).ready(code_toggle_err);
</script>
To toggle on/off output_stderr, click <a href="javascript:code_toggle_err()">here</a>.''')
接受的答案在Jupyter中不起作用(至少在使用某些库时)。
此处的Javascript解决方案仅隐藏已经显示的警告,而不隐藏将来会显示的警告。
为了在Jupyter和JupyterLab中隐藏/取消隐藏警告,我编写了以下脚本,该脚本实际上将css切换为隐藏/取消隐藏警告。
%%javascript
(function(on) {
const e=$( "<a>Setup failed</a>" );
const ns="js_jupyter_suppress_warnings";
var cssrules=$("#"+ns);
if(!cssrules.length) cssrules = $("<style id='"+ns+"' type='text/css'>div.output_stderr { } </style>").appendTo("head");
e.click(function() {
var s='Showing';
cssrules.empty()
if(on) {
s='Hiding';
cssrules.append("div.output_stderr, div[data-mime-type*='.stderr'] { display:none; }");
}
e.text(s+' warnings (click to toggle)');
on=!on;
}).click();
$(element).append(e);
})(true);
对于Jupyter Lab,这应该可以工作(@Alasja)
from IPython.display import HTML
HTML('''<script>
var code_show_err = false;
var code_toggle_err = function() {
var stderrNodes = document.querySelectorAll('[data-mime-type="application/vnd.jupyter.stderr"]')
var stderr = Array.from(stderrNodes)
if (code_show_err){
stderr.forEach(ele => ele.style.display = 'block');
} else {
stderr.forEach(ele => ele.style.display = 'none');
}
code_show_err = !code_show_err
}
document.addEventListener('DOMContentLoaded', code_toggle_err);
</script>
To toggle on/off output_stderr, click <a onclick="javascript:code_toggle_err()">here</a>.''')
每次都有效-
import warnings
warnings.filterwarnings('ignore')