返回首页
最新
我们刚刚开源了我们的mlflow插件,用于生成HTML报告,让您可以交互式地探索SHAP值。我们很高兴收到任何反馈。欢迎在这里提问或向仓库提交问题。
我们有多少次保存了链接或文本,但却因为忘记它们的位置或根本记不住网站的名称而从未取回?<p>这种情况我经常遇到,因此我决定创建 SaveTo,这是一个简单的跨平台应用程序,允许您保存链接,然后可以通过聊天来检索,无需记住网站或链接库的确切名称。<p>我刚刚开放了候补名单,欢迎任何反馈!
大家好!我是一名15岁的学生,刚刚从零开始完成了一个支持CPU和GPU(CUDA)训练的双后端多层感知器(MLP)。<p>在CPU后端,我只使用了Eigen进行线性代数,没有使用其他库。<p>在GPU后端,我在CUDA C++中实现了自己的自定义矩阵库。虽然CUDA内核没有使用共享内存、分块或融合操作(因此存在一些内核启动开销),但我更注重代码的清晰性、模块化和可重用性,而不是追求几毫秒的速度提升。<p>尽管如此,我确保了合并内存访问,性能相当不错,在使用RTX 3060的情况下,MNIST数据集每个训练周期大约为0.4毫秒(批量大小=1000)。<p>这个项目相比我之前的项目有了很大的进步。它更干净,文档齐全,模块化程度更高。<p>我完全意识到还有许多可以改进的地方,我将在未来的项目中继续努力。我的长期目标是进入哈佛或麻省理工学院,这也是我旅程的一部分。<p>非常希望听到你们的想法、建议或反馈。<p>我已经附上了我的GitHub仓库链接。
没有点击诱饵,只有纯粹的 HTML、CSS、JavaScript 和 WASM。
<p>只需复制并粘贴以下 HTML 代码,即可运行《半条命》。
<p>链接:
- https://www.npmjs.com/package/xash3d-fwgs
- https://www.npmjs.com/package/cs16-client
- https://www.npmjs.com/package/hlsdk-portable
- https://github.com/yohimik/webxash3d-fwgs
<p>
```html
<!DOCTYPE html>
<html>
<head>
<title>加载中</title>
<style>
canvas {
width: 100vw;
height: 100vh;
top: 0;
left: 0;
position: fixed;
}
body {
margin: 0;
}
</style>
<script src="https://cdn.jsdelivr.net/npm/xash3d-fwgs@latest/dist/raw.js"></script>
</head>
<body>
<canvas id="canvas"></canvas>
<script type="module">
import JSZip from 'https://cdn.skypack.dev/[email protected]';
async function main() {
const files = {};
const res = await fetch('https://raw.githubusercontent.com/x8BitRain/webXash/main/public/hl/hldm.zip');
const zip = await JSZip.loadAsync(await res.arrayBuffer());
await Promise.all(Object.keys(zip.files).map(async p => {
const file = zip.files[p];
if (file.dir) return;
const path = `/rodir/${p}`;
files[path] = await file.async("uint8array");
}));
Xash3D({
arguments: ['-windowed'],
canvas: document.getElementById('canvas'),
ctx: document.getElementById('canvas').getContext('webgl2', {
alpha: false,
depth: true,
stencil: true,
antialias: true
}),
dynamicLibraries: [
"filesystem_stdio.wasm",
"libref_gles3compat.wasm",
"cl_dlls/menu_emscripten_wasm32.wasm",
"dlls/hl_emscripten_wasm32.so",
"cl_dlls/client_emscripten_wasm32.wasm",
],
onRuntimeInitialized: function () {
Object.keys(files).forEach(k => {
const dir = k.split('/').slice(0, -1).join('/');
this.FS.mkdirTree(dir);
this.FS.writeFile(k, files[k]);
});
this.FS.chdir('/rodir');
},
locateFile: (p) => {
switch (p) {
case 'xash.wasm':
return 'https://cdn.jsdelivr.net/npm/xash3d-fwgs@latest/dist/xash.wasm';
case 'filesystem_stdio.wasm':
return 'https://cdn.jsdelivr.net/npm/xash3d-fwgs@latest/dist/filesystem_stdio.wasm';
case 'libref_gles3compat.wasm':
return 'https://cdn.jsdelivr.net/npm/xash3d-fwgs@latest/dist/libref_gles3compat.wasm';
case 'cl_dlls/menu_emscripten_wasm32.wasm':
return 'https://cdn.jsdelivr.net/npm/xash3d-fwgs@latest/dist/cl_dll/menu_emscripten_wasm32.wasm';
case 'dlls/hl_emscripten_wasm32.so':
return 'https://cdn.jsdelivr.net/npm/hlsdk-portable@latest/dist/dlls/hl_emscripten_wasm32.so';
case 'cl_dlls/client_emscripten_wasm32.wasm':
return 'https://cdn.jsdelivr.net/npm/hlsdk-portable@latest/dist/cl_dll/client_emscripten_wasm32.wasm';
default:
return p;
}
},
});
}
main();
</script>
</body>
</html>
```