🐕
Remix で Tensorflow.js の visor を使いたいときはパッチが必須
Tensorflow.js を remix で使いたいのですが、最近普通になった ESM でビルドしようとすると以下のエラーが出てしまってうまく動きませんが、パッチをしたら動きました。という記事です。
結論
pnpm patch を使って、 @tensorflow/tfjs-vis に以下のパッチをあてる。
diff --git a/dist/index.js b/dist/index.js
index 8b3e4da35cc1048ff486bb83740630eea6aa0f4b..aaf1814f493cd19dadad4039dd5ac74f1ac81444 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -21,7 +21,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
*/
require("@tensorflow/tfjs-core");
// tslint:disable-next-line: no-imports-from-dist
-require("@tensorflow/tfjs-core/dist/public/chained_ops/register_all_chained_ops");
+//require("@tensorflow/tfjs-core/dist/public/chained_ops/register_all_chained_ops");
const barchart_1 = require("./render/barchart");
const confusion_matrix_1 = require("./render/confusion_matrix");
const heatmap_1 = require("./render/heatmap");
関連情報
pnpm dev で起動しようとすると以下のようなエラーが出るわけです。
$ pnpm dev
> my-remix-app@ dev /Users/coji/progs/spike/tensorflow/tensorflowjs-learning
> remix dev --manual
💿 remix dev
info building...
info built (1.1s)
/Users/coji/progs/spike/tensorflow/tensorflowjs-learning/node_modules/.pnpm/@tensorflow+tfjs-core@4.15.0/node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/register_all_chained_ops.js:17
import './abs';
^^^^^^
SyntaxError: Cannot use import statement outside a module
at internalCompileFunction (node:internal/vm:77:18)
at wrapSafe (node:internal/modules/cjs/loader:1288:20)
at Module._compile (node:internal/modules/cjs/loader:1340:27)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
at Module.load (node:internal/modules/cjs/loader:1207:32)
at Function.Module._load (node:internal/modules/cjs/loader:1023:12)
at Module.require (node:internal/modules/cjs/loader:1235:19)
at require (node:internal/modules/helpers:176:18)
at Object.<anonymous> (/Users/coji/progs/spike/tensorflow/tensorflowjs-learning/node_modules/.pnpm/@tensorflow+tfjs-vis@1.5.1_@tensorflow+tfjs-core@4.15.0/node_modules/@tensorflow/tfjs-vis/src/index.ts:19:1)
at Module._compile (node:internal/modules/cjs/loader:1376:14)
同様の issue がここにもあるんですが、3年間そのまんまです。つら。
結局下記で workaround としてパッチをあてるコメントをしてくださっているので、そのとおりにしたら動きました、ということなのでした。
この辺、tensorflow はちょっとつらいのかなあ。
Google さんおねがいしますよ〜
Discussion