diff --git a/src/TorchSharp/Torch.cs b/src/TorchSharp/Torch.cs index 728fa9ccd..37a9990e3 100644 --- a/src/TorchSharp/Torch.cs +++ b/src/TorchSharp/Torch.cs @@ -166,6 +166,10 @@ private static void LoadNativeBackend(bool useCudaBackend, out StringBuilder? tr trace.AppendLine($" packagesDir = {packagesDir}"); trace.AppendLine($" torchsharpHome = {torchsharpHome}"); + Console.WriteLine($" torchsharpLoc = {torchsharpLoc}"); + Console.WriteLine($" packagesDir = {packagesDir}"); + Console.WriteLine($" torchsharpHome = {torchsharpHome}"); + if (torchsharpLoc!.Contains("torchsharp") && torchsharpLoc.Contains("lib") && Directory.Exists(packagesDir) && Directory.Exists(torchsharpHome)) { var torchSharpVersion = Path.GetFileName(torchsharpHome); // really GetDirectoryName @@ -192,8 +196,11 @@ private static void LoadNativeBackend(bool useCudaBackend, out StringBuilder? tr var consolidatedDir = Path.Combine(torchsharpLoc, $"cpu"); trace.AppendLine($" Trying dynamic load for .NET/F# Interactive by consolidating native {cpuRootPackage}-* binaries to {consolidatedDir}..."); - + Console.WriteLine($" cpuRootPackage = {cpuRootPackage}"); + Console.WriteLine($" consolidatedDir = {consolidatedDir}"); + Console.WriteLine($" libtorchPackageVersion = {libtorchPackageVersion}"); var cpuOk = CopyNativeComponentsIntoSingleDirectory(packagesDir, cpuRootPackage, libtorchPackageVersion, consolidatedDir, trace); + if (cpuOk) { cpuOk = CopyNativeComponentsIntoSingleDirectory(packagesDir, "torchsharp", torchSharpVersion, consolidatedDir, trace); if (cpuOk) { @@ -238,11 +245,15 @@ private static bool CopyNativeComponentsIntoSingleDirectory(string packagesDir, // these will be resolved in subsequent iterations. trace.AppendLine($" Consolidating native binaries, packagesDir={packagesDir}, packagePattern={packagePattern}, packageVersion={packageVersion} to target={target}..."); if (Directory.Exists(packagesDir)) { + var versionParts = packageVersion.Split('.'); + string majorMinorPatchVersion = $"{versionParts[0]}.{versionParts[1]}.{versionParts[2]}"; + Console.WriteLine($" majorMinorPatchVersion = {majorMinorPatchVersion}"); var packages = Directory.GetDirectories(packagesDir, packagePattern) - .Where(d => Directory.Exists(Path.Combine(d, packageVersion))) + .Where(d => Directory.Exists(Path.Combine(d, majorMinorPatchVersion))) .ToArray(); - + Console.WriteLine($" Found {packages.Length} packages matching {packagePattern} in {packagesDir}"); + packages.ToList().ForEach(Console.WriteLine); if (packages.Length > 0) { if (!Directory.Exists(target)) Directory.CreateDirectory(target);