MLModel.CompileModel(NSUrl, NSError) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
で modelUrl
モデルをコンパイルします。
[Foundation.Export("compileModelAtURL:error:")]
public static Foundation.NSUrl CompileModel (Foundation.NSUrl modelUrl, out Foundation.NSError error);
static member CompileModel : Foundation.NSUrl * -> Foundation.NSUrl
パラメーター
- modelUrl
- NSUrl
コンパイルするモデルの URL。
- error
- NSError
失敗した場合に発生したエラー。
戻り値
- 属性
注釈
これは高価な関数です。 実行時間はモデルのサイズによって異なりますが、開発者はバックグラウンド スレッドでこのメソッドを実行し、このメソッドを繰り返し実行する必要がないように手順を実行する必要があります。
次の例は、開発者がモデルをダウンロードしてコンパイルし、コンパイル済みモデルをアプリの永続的ストレージに移動する方法を示しています。
NSUrl CompileModel(string modelName)
{
var downloadedFile = modelName + ".mlmodel";
var fileUrl = NSUrl.FromFilename(downloadedFile);
NSError err = null;
var compiledUrl = MLModel.CompileModel(fileUrl, out err);
if (err != null)
{
throw new Exception(err.ToString());
}
return compiledUrl;
}
NSUrl StoreModel(NSUrl sourceUrl)
{
var fileManager = NSFileManager.DefaultManager;
NSError err = null;
var appSupportDirectory = fileManager.GetUrl(NSSearchPathDirectory.ApplicationSupportDirectory, NSSearchPathDomain.User, sourceUrl, true, out err);
if (err != null)
{
throw new Exception(err.ToString());
}
// Create a permanent URL in appSupportDirectory
var destinationUrl = appSupportDirectory.Append(sourceUrl.LastPathComponent, true);
NSUrl resultingUrl = null;
var destPath = destinationUrl.AbsoluteString;
// If the compiled model directory exists, replace it
if (System.IO.Directory.Exists(destinationUrl.Path))
{
fileManager.Replace(destinationUrl, sourceUrl, null, NSFileManagerItemReplacementOptions.None, out resultingUrl, out err);
}
else
{
fileManager.Copy(sourceUrl, destinationUrl, out err);
}
if (err != null)
{
throw new Exception(err.ToString());
}
return resultingUrl;
}
private async Task<NSUrl> DownloadAndStoryCoreMLModelAsync()
{
var modelName = "SomeModel";
var sourceUrl ="https://Contoso.org/SomeModel.mlmodel";
using (var wc = new WebClient())
{
await wc.DownloadFileTaskAsync(sourceUrl, modelName +".mlmodel");
var compiledModelPath = CompileModel(modelName);
var finalPath = StoreModel(compiledModelPath);
return finalPath;
}
}