HTMLファイルを編集せず、JavaScriptからTensorFlow.jsを安全に読み込む実装パターンを、実行可能なコードと共に解説
2025年8月20日
tf.tensor()以下が本記事の核心となるスニペットです。F12 のコンソールでも試せます。
const script = document.createElement("script");
script.src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs";
script.onload = () => {
const t = tf.tensor([1, 2, 3, 4]); // ← ロード完了後ならOK
t.print();
};
document.head.appendChild(script);
script.onload の中で tf.tensor() を呼び出してください。未ロードだと "tensor is not a function" 等のエラーになります。document.createElement("script")script.src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"document.head.appendChild(script)この流れにより、HTMLを編集せずJavaScriptのみで導入できます。
function loadScript(src){
return new Promise((resolve,reject)=>{
const s=document.createElement("script");
s.src=src; s.async=false; // 明示的に順序を維持
s.onload=()=>resolve();
s.onerror=()=>reject(new Error(`Failed to load ${src}`));
document.head.appendChild(s);
});
}
(async ()=>{
//https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@4.22.0/dist/tf.min.js
await loadScript("https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest");
await loadScript("https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-vis@latest");
const t = tf.tensor([1, 2, 3, 4]);
t.print();
// 可視化例(開発時のみ)
if (window.tfvis) {
tfvis.show.valuesDistribution({ name: "My Tensor" }, t);
}
})();
let tfReady;
function ensureTF(){
if (tfReady) return tfReady; // 2回目以降は同じPromiseを返す
tfReady = new Promise((resolve)=>{
const s=document.createElement('script');
s.src='https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest';
s.onload=resolve; document.head.appendChild(s);
});
return tfReady;
}
async function run(){
await ensureTF();
const t = tf.tensor([0,1,2,3]).reshape([2,2]);
t.print();
}
// ボタン等のイベントで実行
// document.querySelector('#run').addEventListener('click', run);
// プロダクションは互換性のため固定推奨
await loadScript("https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@4.21.0");
script.onload 内で呼ぶ。type="module" とCDNグローバルの併用は設計を分離。onload でAPI呼び出しを行い、ロード順序は Promise/async で制御。.htaccessは階層で引き継がれる?Apacheの挙動を徹底解説
SEO対策に必須!検索上位を狙うsitemap.xmlの完全ガイド
Google Search Consoleの「代替ページ(適切なcanonicalタグあり)」とは?原因と解決法を徹底解説!
Microsoft純正の新しいコンソールエディタ「edit」が復活!| edit.exe インストール方法
Googleサイト確認のTXTレコードをnslookupで確認する方法【SEO対策】
Googleサーチコンソールに反映されるための最低限のSEO構造とは
【Anker Soundcore Liberty 4】イヤーピース紛失!代替品はAmazonで購入
JavaScriptでタイムゾーン変換!UTCとJST(日本時間)の変換方法
HTMLとJavaScriptモジュールでクラスを定義し、ボタンから呼び出す方法
JavaScriptでTensorFlow.jsを動的に読み込む方法|HTMLに直接書かずに機械学習を実行する
ffmpegでMOVファイルを逆再生する方法【音声付き対応】
JavaScriptでPCの空き容量やメモリ量を取得できる?Chromeの制限と代替手法
PowerShellでNode.jsの最新バージョン一覧を確認する方法【Volta/Windows対応】
Next.jsでbasePathを/homepage2にしてS3へ静的デプロイする完全手順