[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/Banyc/TensorFlow.NET/master/scripts/Copy-NativeTensorFlowLibs.ps1 [Back]  [Original]

param(
    [switch] $SkipCpuLibraries = $false,
    [switch] $SkipGpuLibraries = $false
)

function Expand-TarGzFiles {
    
    param
    (
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [string] $Archive,
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [string []] $Files,
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [string] $TargetDirectory
    )

    & 7z e $Archive -o"$TargetDirectory"
    $TarArchive = Join-Path $TargetDirectory "libtensorflow.tar"

    & 7z e  $TarArchive $Files -o"$TargetDirectory"
    Remove-Item $TarArchive
}

function Expand-ZipFiles {
    
    param(
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [string] $Archive,
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [string []] $Files,
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [string] $TargetDirectory
    )

    & 7z e $Archive $Files -o"$TargetDirectory"
}

function Split-ArchiveFromUrl {
    
    param(
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [string] $ArchiveUrl
    )
    
    $uriParts = $ArchiveUrl.split("/")
    $ArchivePath = $uriParts[$uriParts.Count - 1]

    return $ArchivePath
}

function Copy-Archive {
    
    param (
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [string] $ArchiveUrl,
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [string] $TargetDirectory
    )

    $ArchiveName = Split-ArchiveFromUrl $ArchiveUrl

    $TargetPath = [IO.Path]::Combine($PSScriptRoot, "..", "packages", $ArchiveName)

    if (Test-Path $TargetPath -PathType Leaf) {
        Write-Error "$TargetPath already exists, please remove to download againg."
        return $TargetPath
    }

    if (-not (Test-Path $TargetDirectory -PathType Container)) {
        Write-Host "Creating missing $TargetDirectory"
        New-Item -Path $TargetDirectory -ItemType Directory
    }
    Write-Host "Downloading $ArchiveUrl, this might take a while..."
    $wc = New-Object System.Net.WebClient
    $wc.DownloadFile($ArchiveUrl, $TargetPath)

    return $TargetPath
}

$LinuxGpuArchive = "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-gpu-linux-x86_64-1.14.0.tar.gz"
$LinuxCpuArchive = "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-1.14.0.tar.gz"
$LinuxFiles = @(".\libtensorflow.tar", ".\lib\libtensorflow.so", ".\lib\libtensorflow.so.1", ".\lib\libtensorflow.so.1.14.0", `
        ".\lib\libtensorflow_framework.so", ".\lib\libtensorflow_framework.so.1", ".\lib\libtensorflow_framework.so.1.14.0")
$WindowsGpuArchive = "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-gpu-windows-x86_64-1.14.0.zip"
$WindowsCpuArchive = "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-windows-x86_64-1.14.0.zip"
$WindowsFiles = @("lib\tensorflow.dll")
$PackagesDirectory = [IO.Path]::Combine($PSScriptRoot, "..", "packages")


if (-not $SkipGpuLibraries) {
    $Archive = Copy-Archive -ArchiveUrl $WindowsGpuArchive -TargetDirectory $PackagesDirectory
    $TargetDirectory = [IO.Path]::Combine($PSScriptRoot, "..", "redist", "runtime.win-x64.SciSharp.TensorFlow-Gpu.Redist")
    Expand-ZipFiles $Archive $WindowsFiles $TargetDirectory

    $Archive = Copy-Archive -ArchiveUrl $LinuxGpuArchive -TargetDirectory $PackagesDirectory
    $TargetDirectory = [IO.Path]::Combine($PSScriptRoot, "..", "redist", "runtime.linux-x64.SciSharp.Tensorflow-Gpu.Redist")
    Expand-TarGzFiles $Archive $LinuxFiles $TargetDirectory
}

if (-not $SkipCpuLibraries) {
    $Archive = Copy-Archive -ArchiveUrl $WindowsCpuArchive -TargetDirectory $PackagesDirectory
    $TargetDirectory = [IO.Path]::Combine($PSScriptRoot, "..", "redist", "runtime.win-x64.SciSharp.TensorFlow-Cpu.Redist")
    Expand-ZipFiles $Archive $WindowsFiles $TargetDirectory

    $Archive = Copy-Archive -ArchiveUrl $LinuxCpuArchive -TargetDirectory $PackagesDirectory
    $TargetDirectory = [IO.Path]::Combine($PSScriptRoot, "..", "redist", "runtime.linux-x64.SciSharp.Tensorflow-Cpu.Redist")
    Expand-TarGzFiles $Archive $LinuxFiles $TargetDirectory
}


Web Proxy Viewer  |  New URL  |  Original Page