* Add unittest redist holder for all test projects. * Move redist holder to another folder. * Create dotnet.yml to config github action * Revise the sln file. * Update dotnet.yml * Add version to tensorflow.hub. * Create release.yml * Update dotnet.yml * Update and rename dotnet.yml to build_and_test.yml * Update release.yml * Update release.yml * Revise project using. * Update build_and_test.yml * Update release.yml * Update the package info of Tensorflow.Hub. * Add a tolorance to equivalence of NDArray. * Create semantic.yml * fix: run code clean. * Update release.yml * Update release.yml * ci: revise the auto release ci. * ci: update release ci. * ci: update release ci. * ci: update ci files. * ci: update ci files. * ci: update ci files. * ci: update ci files. * ci: update ci files. * ci: update release ci and hub package info. * ci: revise build_and_test ci. * test: add tolorance to float NDArray comparison. * ci: disable linux test. * ci: update release ci. * Update release.yml * ci: update release ci. * ci: revise auto-release ci. * ci: update auto-release ci. * Update release.yml * ci: specify packed project names of auto-release. * ci: revise auto release ci file. * ci: revise auto-release ci file. * ci: revise auto-release ci file. * ci: revise auto-release ci file. * Update release.yml * ci: revise auto-release ci file. * ci: revise auto-release ci file. * ci: revise auto-release ci file.tags/v0.100.5-BERT-load
@@ -0,0 +1,66 @@ | |||||
# This workflow will build a .NET project | |||||
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net | |||||
name: build_and_test | |||||
on: | |||||
push: | |||||
branches: [ "master" ] | |||||
pull_request: | |||||
branches: [ "master" ] | |||||
types: ["opened", "reopened", "synchronize", "ready_for_review", "auto_merge_enabled"] | |||||
jobs: | |||||
windows: | |||||
runs-on: windows-latest | |||||
steps: | |||||
- uses: actions/checkout@v3 | |||||
- name: Setup .NET 6 | |||||
uses: actions/setup-dotnet@v3 | |||||
with: | |||||
dotnet-version: 6.0.x | |||||
- name: Restore dependencies | |||||
run: dotnet restore | |||||
- name: Build CPU version | |||||
run: dotnet build --no-restore | |||||
- name: Test CPU version | |||||
run: dotnet test --no-build --verbosity normal | |||||
- name: uninstall redist cpu for unit tests | |||||
run: dotnet remove helpers/Tensorflow.UnitTest.RedistHolder package SciSharp.TensorFlow.Redist | |||||
- name: install redist gpu for unit tests | |||||
run: dotnet add helpers/Tensorflow.UnitTest.RedistHolder package SciSharp.TensorFlow.Redist-Windows-GPU | |||||
- name: Restore dependencies | |||||
run: dotnet restore | |||||
- name: Build GPU version | |||||
run: dotnet build --no-restore | |||||
# - name: Test GPU version | |||||
# run: dotnet test --no-build --verbosity normal | |||||
linux: | |||||
runs-on: ubuntu-latest | |||||
steps: | |||||
- uses: actions/checkout@v3 | |||||
- name: Setup .NET | |||||
uses: actions/setup-dotnet@v3 | |||||
with: | |||||
dotnet-version: 6.0.x | |||||
- name: Restore dependencies | |||||
run: dotnet restore | |||||
- name: Build CPU version | |||||
run: dotnet build --no-restore | |||||
# - name: Test CPU version | |||||
# run: dotnet test --no-build --verbosity normal | |||||
- name: uninstall redist cpu for unit tests | |||||
run: dotnet remove helpers/Tensorflow.UnitTest.RedistHolder package SciSharp.TensorFlow.Redist | |||||
- name: install redist gpu for unit tests | |||||
run: dotnet add helpers/Tensorflow.UnitTest.RedistHolder package SciSharp.TensorFlow.Redist-Linux-GPU | |||||
- name: Restore dependencies | |||||
run: dotnet restore | |||||
- name: Build GPU version | |||||
run: dotnet build --no-restore | |||||
# - name: Test GPU version | |||||
# run: dotnet test --no-build --verbosity normal |
@@ -0,0 +1,100 @@ | |||||
name: auto-release | |||||
on: | |||||
label: | |||||
types: [created, edited] | |||||
pull_request: | |||||
branches: | |||||
- master | |||||
types: [ labeled, opened, reopened, synchronize ] | |||||
env: | |||||
MYGET_API_TOKEN: ${{ SECRETS.RINNE_MYGET_KEY }} | |||||
GITHUB_TOKEN: ${{ SECRETS.RINNE_GITHUB_TOKEN }} | |||||
jobs: | |||||
build: | |||||
if: contains(github.event.pull_request.labels.*.name, 'auto-release') | |||||
runs-on: windows-latest | |||||
steps: | |||||
- uses: actions/checkout@v3 | |||||
- name: Setup .NET 6.0.x SDK | |||||
uses: actions/setup-dotnet@v3 | |||||
with: | |||||
dotnet-version: 6.0.x | |||||
- name: Check .NET info | |||||
run: dotnet --info | |||||
- name: Install dependencies | |||||
run: dotnet restore | |||||
- name: Build solution | |||||
run: dotnet build -c Release --no-restore | |||||
# run-semantic-release: | |||||
# runs-on: ubuntu-latest | |||||
# needs: build | |||||
# steps: | |||||
# - name: Checkout | |||||
# uses: actions/checkout@v2 | |||||
# - name: Run semantic-release | |||||
# run: | | |||||
# export PATH=$PATH:$(yarn global bin) | |||||
# yarn global add semantic-release@17.4.3 | |||||
# semantic-release | |||||
release: | |||||
runs-on: windows-latest | |||||
# needs: run-semantic-release | |||||
needs: build | |||||
steps: | |||||
- uses: actions/checkout@v3 | |||||
- name: Setup .NET 6.0.x SDK | |||||
uses: actions/setup-dotnet@v3 | |||||
with: | |||||
dotnet-version: 6.0.x | |||||
- name: Check .NET info | |||||
run: dotnet --info | |||||
- name: Install dependencies | |||||
run: dotnet restore | |||||
- name: Build solution | |||||
run: dotnet build -c Release --no-restore | |||||
- name: Pack packages | |||||
run: | | |||||
git fetch --unshallow; | |||||
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"; | |||||
git fetch origin; | |||||
$LastTag = git describe --tags; | |||||
echo "Last tag is: $LastTag"; | |||||
$Version = ($LastTag).TrimStart('v') + "-preview"; | |||||
echo "Publishing version: $Version"; | |||||
dotnet pack ./src/TensorFlowNET.Core/Tensorflow.Binding.csproj -c Release -o packages /p:PackageVersion=$Version /p:Version=$Version; | |||||
dotnet pack ./src/TensorFlowNET.Keras/Tensorflow.Keras.csproj -c Release -o packages /p:PackageVersion=$Version /p:Version=$Version; | |||||
dotnet pack ./src/TensorflowNET.Hub/Tensorflow.Hub.csproj -c Release -o packages /p:PackageVersion=$Version /p:Version=$Version; | |||||
if($LastExitCode -ne 0) | |||||
{ | |||||
Write-Warning -Message "Pack packages warming, last exit code is ${LastExitCode}." | |||||
$LastExitCode = 0; | |||||
} | |||||
- name: Upload packages artifacts | |||||
uses: actions/upload-artifact@v1.0.0 | |||||
with: | |||||
name: "drop-ci-packages" | |||||
path: './packages' | |||||
- name: Add myget nuget source | |||||
run: dotnet nuget add source https://www.myget.org/F/rinne/api/v2/package --name myget.org | |||||
- name: Push TensorFlow.NET to myget.org | |||||
run: dotnet nuget push .\packages\TensorFlow*.nupkg -s myget.org -k $env:MYGET_API_TOKEN --skip-duplicate |
@@ -0,0 +1,17 @@ | |||||
name: Semantic | |||||
on: | |||||
pull_request: | |||||
branches: [ "master" ] | |||||
jobs: | |||||
semantic-pull-request: | |||||
name: Semantic check | |||||
runs-on: windows-latest | |||||
steps: | |||||
- name: semantic-pull-request | |||||
uses: amannn/action-semantic-pull-request@v4 | |||||
env: | |||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |||||
with: | |||||
validateSingleCommit: true |
@@ -31,7 +31,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{01A1787F-A9B | |||||
EndProject | EndProject | ||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{1B0918B9-65AD-4F34-A287-AF4597B27DBD}" | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{1B0918B9-65AD-4F34-A287-AF4597B27DBD}" | ||||
EndProject | EndProject | ||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "console", "console", "{E1A5D2B7-10AF-4876-85C0-7714EF274214}" | |||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "helpers", "helpers", "{E1A5D2B7-10AF-4876-85C0-7714EF274214}" | |||||
EndProject | |||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tensorflow.UnitTest.RedistHolder", "helpers\Tensorflow.UnitTest.RedistHolder\Tensorflow.UnitTest.RedistHolder.csproj", "{62D543A2-8846-45A3-829B-5754B094A8E2}" | |||||
EndProject | EndProject | ||||
Global | Global | ||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
@@ -262,13 +264,31 @@ Global | |||||
{7DEA8760-E401-4872-81F3-405F185A13A0}.Release|x64.Build.0 = Release|Any CPU | {7DEA8760-E401-4872-81F3-405F185A13A0}.Release|x64.Build.0 = Release|Any CPU | ||||
{7DEA8760-E401-4872-81F3-405F185A13A0}.Release|x86.ActiveCfg = Release|Any CPU | {7DEA8760-E401-4872-81F3-405F185A13A0}.Release|x86.ActiveCfg = Release|Any CPU | ||||
{7DEA8760-E401-4872-81F3-405F185A13A0}.Release|x86.Build.0 = Release|Any CPU | {7DEA8760-E401-4872-81F3-405F185A13A0}.Release|x86.Build.0 = Release|Any CPU | ||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.GPU|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.GPU|Any CPU.Build.0 = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.GPU|x64.ActiveCfg = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.GPU|x64.Build.0 = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.GPU|x86.ActiveCfg = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.GPU|x86.Build.0 = Debug|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Release|x64.Build.0 = Release|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{62D543A2-8846-45A3-829B-5754B094A8E2}.Release|x86.Build.0 = Release|Any CPU | |||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(SolutionProperties) = preSolution | GlobalSection(SolutionProperties) = preSolution | ||||
HideSolutionNode = FALSE | HideSolutionNode = FALSE | ||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(NestedProjects) = preSolution | GlobalSection(NestedProjects) = preSolution | ||||
{FD682AC0-7B2D-45D3-8B0D-C6D678B04144} = {01A1787F-A9BE-4221-84E8-6360DD010AB6} | {FD682AC0-7B2D-45D3-8B0D-C6D678B04144} = {01A1787F-A9BE-4221-84E8-6360DD010AB6} | ||||
{3A6EB896-604F-4E25-B677-B8103BCF3D2E} = {1B0918B9-65AD-4F34-A287-AF4597B27DBD} | |||||
{3A6EB896-604F-4E25-B677-B8103BCF3D2E} = {E1A5D2B7-10AF-4876-85C0-7714EF274214} | |||||
{23C28035-2FCE-41F3-9A12-E73CE8A5AE32} = {1B0918B9-65AD-4F34-A287-AF4597B27DBD} | {23C28035-2FCE-41F3-9A12-E73CE8A5AE32} = {1B0918B9-65AD-4F34-A287-AF4597B27DBD} | ||||
{03F06299-3F4B-4449-A709-3A647657BC0C} = {E1A5D2B7-10AF-4876-85C0-7714EF274214} | {03F06299-3F4B-4449-A709-3A647657BC0C} = {E1A5D2B7-10AF-4876-85C0-7714EF274214} | ||||
{49D71826-C03D-4FA7-9BAC-22C1327E65CF} = {01A1787F-A9BE-4221-84E8-6360DD010AB6} | {49D71826-C03D-4FA7-9BAC-22C1327E65CF} = {01A1787F-A9BE-4221-84E8-6360DD010AB6} | ||||
@@ -279,6 +299,7 @@ Global | |||||
{3F5388FF-FBB4-462B-8F6F-829FFBAEB8A3} = {1B0918B9-65AD-4F34-A287-AF4597B27DBD} | {3F5388FF-FBB4-462B-8F6F-829FFBAEB8A3} = {1B0918B9-65AD-4F34-A287-AF4597B27DBD} | ||||
{9738D16A-CFA0-405C-A7DF-D3D203B0CB18} = {01A1787F-A9BE-4221-84E8-6360DD010AB6} | {9738D16A-CFA0-405C-A7DF-D3D203B0CB18} = {01A1787F-A9BE-4221-84E8-6360DD010AB6} | ||||
{7DEA8760-E401-4872-81F3-405F185A13A0} = {1B0918B9-65AD-4F34-A287-AF4597B27DBD} | {7DEA8760-E401-4872-81F3-405F185A13A0} = {1B0918B9-65AD-4F34-A287-AF4597B27DBD} | ||||
{62D543A2-8846-45A3-829B-5754B094A8E2} = {E1A5D2B7-10AF-4876-85C0-7714EF274214} | |||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(ExtensibilityGlobals) = postSolution | GlobalSection(ExtensibilityGlobals) = postSolution | ||||
SolutionGuid = {2DEAD3CC-486B-4918-A607-50B0DE7B114A} | SolutionGuid = {2DEAD3CC-486B-4918-A607-50B0DE7B114A} | ||||
@@ -0,0 +1,3 @@ | |||||
internal class EmptyClass | |||||
{ | |||||
} |
@@ -0,0 +1,12 @@ | |||||
<Project Sdk="Microsoft.NET.Sdk"> | |||||
<PropertyGroup> | |||||
<TargetFramework>netstandard2.0</TargetFramework> | |||||
</PropertyGroup> | |||||
<ItemGroup> | |||||
<PackageReference Include="SciSharp.TensorFlow.Redist" Version="2.11.3" /> | |||||
<PackageReference Include="SciSharp.TensorFlow.Redist-Lite" Version="2.6.0" /> | |||||
</ItemGroup> | |||||
</Project> |
@@ -1,8 +1,4 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using static Tensorflow.Binding; | |||||
using static Tensorflow.Binding; | |||||
namespace Tensorflow.NumPy | namespace Tensorflow.NumPy | ||||
{ | { | ||||
@@ -14,35 +10,52 @@ namespace Tensorflow.NumPy | |||||
public static NDArray operator -(NDArray lhs, NDArray rhs) => new NDArray(BinaryOpWrapper("sub", lhs, rhs)); | public static NDArray operator -(NDArray lhs, NDArray rhs) => new NDArray(BinaryOpWrapper("sub", lhs, rhs)); | ||||
[AutoNumPy] | [AutoNumPy] | ||||
public static NDArray operator *(NDArray lhs, NDArray rhs) => new NDArray(BinaryOpWrapper("mul", lhs, rhs)); | public static NDArray operator *(NDArray lhs, NDArray rhs) => new NDArray(BinaryOpWrapper("mul", lhs, rhs)); | ||||
[AutoNumPy] | |||||
[AutoNumPy] | |||||
public static NDArray operator /(NDArray lhs, NDArray rhs) => new NDArray(BinaryOpWrapper("div", lhs, rhs)); | public static NDArray operator /(NDArray lhs, NDArray rhs) => new NDArray(BinaryOpWrapper("div", lhs, rhs)); | ||||
[AutoNumPy] | [AutoNumPy] | ||||
public static NDArray operator %(NDArray lhs, NDArray rhs) => new NDArray(BinaryOpWrapper("mod", lhs, rhs)); | public static NDArray operator %(NDArray lhs, NDArray rhs) => new NDArray(BinaryOpWrapper("mod", lhs, rhs)); | ||||
[AutoNumPy] | |||||
[AutoNumPy] | |||||
public static NDArray operator >(NDArray lhs, NDArray rhs) => new NDArray(gen_math_ops.greater(lhs, rhs)); | public static NDArray operator >(NDArray lhs, NDArray rhs) => new NDArray(gen_math_ops.greater(lhs, rhs)); | ||||
[AutoNumPy] | |||||
[AutoNumPy] | |||||
public static NDArray operator <(NDArray lhs, NDArray rhs) => new NDArray(gen_math_ops.less(lhs, rhs)); | public static NDArray operator <(NDArray lhs, NDArray rhs) => new NDArray(gen_math_ops.less(lhs, rhs)); | ||||
[AutoNumPy] | |||||
[AutoNumPy] | |||||
public static NDArray operator -(NDArray lhs) => new NDArray(gen_math_ops.neg(lhs)); | public static NDArray operator -(NDArray lhs) => new NDArray(gen_math_ops.neg(lhs)); | ||||
[AutoNumPy] | [AutoNumPy] | ||||
public static NDArray operator ==(NDArray lhs, NDArray rhs) | public static NDArray operator ==(NDArray lhs, NDArray rhs) | ||||
{ | { | ||||
if(ReferenceEquals(lhs, rhs)) | |||||
if (ReferenceEquals(lhs, rhs)) | |||||
return Scalar(true); | return Scalar(true); | ||||
if(lhs is null) | |||||
if (lhs is null) | |||||
return Scalar(false); | return Scalar(false); | ||||
if(rhs is null) | |||||
if (rhs is null) | |||||
return Scalar(false); | return Scalar(false); | ||||
return new NDArray(math_ops.equal(lhs, rhs)); | |||||
// TODO(Rinne): use np.allclose instead. | |||||
if (lhs.dtype.is_floating() || rhs.dtype.is_floating()) | |||||
{ | |||||
var diff = tf.abs(lhs - rhs); | |||||
return new NDArray(gen_math_ops.less(diff, new NDArray(1e-5).astype(diff.dtype))); | |||||
} | |||||
else | |||||
{ | |||||
return new NDArray(math_ops.equal(lhs, rhs)); | |||||
} | |||||
} | } | ||||
[AutoNumPy] | [AutoNumPy] | ||||
public static NDArray operator !=(NDArray lhs, NDArray rhs) | public static NDArray operator !=(NDArray lhs, NDArray rhs) | ||||
{ | { | ||||
if(ReferenceEquals(lhs, rhs)) | |||||
if (ReferenceEquals(lhs, rhs)) | |||||
return Scalar(false); | return Scalar(false); | ||||
if(lhs is null || rhs is null) | |||||
if (lhs is null || rhs is null) | |||||
return Scalar(true); | return Scalar(true); | ||||
return new NDArray(math_ops.not_equal(lhs, rhs)); | |||||
if (lhs.dtype.is_floating() || rhs.dtype.is_floating()) | |||||
{ | |||||
var diff = tf.abs(lhs - rhs); | |||||
return new NDArray(gen_math_ops.greater_equal(diff, new NDArray(1e-5).astype(diff.dtype))); | |||||
} | |||||
else | |||||
{ | |||||
return new NDArray(math_ops.not_equal(lhs, rhs)); | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -41,6 +41,7 @@ https://tensorflownet.readthedocs.io</Description> | |||||
<FileVersion>1.0.0.0</FileVersion> | <FileVersion>1.0.0.0</FileVersion> | ||||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | <PackageLicenseFile>LICENSE</PackageLicenseFile> | ||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | ||||
<PackageOutputPath>packages</PackageOutputPath> | |||||
<SignAssembly>true</SignAssembly> | <SignAssembly>true</SignAssembly> | ||||
<AssemblyOriginatorKeyFile>Open.snk</AssemblyOriginatorKeyFile> | <AssemblyOriginatorKeyFile>Open.snk</AssemblyOriginatorKeyFile> | ||||
<Platforms>AnyCPU;x64</Platforms> | <Platforms>AnyCPU;x64</Platforms> | ||||
@@ -34,6 +34,7 @@ Keras is an API designed for human beings, not machines. Keras follows best prac | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | <GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||||
<PackageTags>tensorflow, keras, deep learning, machine learning</PackageTags> | <PackageTags>tensorflow, keras, deep learning, machine learning</PackageTags> | ||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | ||||
<PackageOutputPath>packages</PackageOutputPath> | |||||
<RepositoryType>Git</RepositoryType> | <RepositoryType>Git</RepositoryType> | ||||
<SignAssembly>true</SignAssembly> | <SignAssembly>true</SignAssembly> | ||||
<AssemblyOriginatorKeyFile>Open.snk</AssemblyOriginatorKeyFile> | <AssemblyOriginatorKeyFile>Open.snk</AssemblyOriginatorKeyFile> | ||||
@@ -4,6 +4,25 @@ | |||||
<TargetFrameworks>netstandard2.0;net6</TargetFrameworks> | <TargetFrameworks>netstandard2.0;net6</TargetFrameworks> | ||||
<LangVersion>10</LangVersion> | <LangVersion>10</LangVersion> | ||||
<Nullable>enable</Nullable> | <Nullable>enable</Nullable> | ||||
<Version>1.0.0</Version> | |||||
<PackageId>TensorFlow.Hub</PackageId> | |||||
<PackageLicenseExpression>Apache2.0</PackageLicenseExpression> | |||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | |||||
<SignAssembly>true</SignAssembly> | |||||
<Authors>Yaohui Liu, Haiping Chen</Authors> | |||||
<Company>SciSharp STACK</Company> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | |||||
<Copyright>Apache 2.0, Haiping Chen $([System.DateTime]::UtcNow.ToString(yyyy))</Copyright> | |||||
<RepositoryUrl>https://github.com/SciSharp/TensorFlow.NET</RepositoryUrl> | |||||
<RepositoryType>git</RepositoryType> | |||||
<PackageProjectUrl>http://scisharpstack.org</PackageProjectUrl> | |||||
<PackageIconUrl>https://avatars3.githubusercontent.com/u/44989469?s=200&v=4</PackageIconUrl> | |||||
<PackageTags>TensorFlow, SciSharp, Machine Learning, Deep Learning, Transfer Learning, TensorFlow Hub, TensorFlow.NET, TF.NET, AI</PackageTags> | |||||
<PackageOutputPath>packages</PackageOutputPath> | |||||
<Description> | |||||
Google's TensorFlow Hub full binding in .NET Standard. | |||||
A library for transfer learning with TensorFlow.NET. | |||||
</Description> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
@@ -31,10 +31,10 @@ | |||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||||
</PackageReference> | </PackageReference> | ||||
<PackageReference Include="SciSharp.TensorFlow.Redist" Version="2.11.3" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\..\helpers\Tensorflow.UnitTest.RedistHolder\Tensorflow.UnitTest.RedistHolder.csproj" /> | |||||
<ProjectReference Include="..\..\src\TensorFlowNET.Core\Tensorflow.Binding.csproj" /> | <ProjectReference Include="..\..\src\TensorFlowNET.Core\Tensorflow.Binding.csproj" /> | ||||
<ProjectReference Include="..\TensorFlowNET.Keras.UnitTest\Tensorflow.Keras.UnitTest.csproj" /> | <ProjectReference Include="..\TensorFlowNET.Keras.UnitTest\Tensorflow.Keras.UnitTest.csproj" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
@@ -49,7 +49,7 @@ namespace Tensorflow.Keras.UnitTest.Layers | |||||
Tensor input = tf.constant(new float[] { -3f, -2f, -1f, 0f, 1f, 2f }); | Tensor input = tf.constant(new float[] { -3f, -2f, -1f, 0f, 1f, 2f }); | ||||
Tensor output = keras.layers.Softplus().Apply(input); | Tensor output = keras.layers.Softplus().Apply(input); | ||||
NDArray expected = new NDArray(new float[] { 0.04858733f, 0.12692805f, 0.31326166f, 0.6931472f, 1.3132616f, 2.126928f }); | NDArray expected = new NDArray(new float[] { 0.04858733f, 0.12692805f, 0.31326166f, 0.6931472f, 1.3132616f, 2.126928f }); | ||||
Assert.AreEqual(expected, output.numpy()); | |||||
Assert.IsTrue(expected == output.numpy()); | |||||
} | } | ||||
[TestMethod] | [TestMethod] | ||||
@@ -94,7 +94,7 @@ namespace Tensorflow.Keras.UnitTest.Layers | |||||
{ 7.6400003f, 12.24f, 16.84f }, | { 7.6400003f, 12.24f, 16.84f }, | ||||
{ 14.24f, 22.84f, 31.439999f } | { 14.24f, 22.84f, 31.439999f } | ||||
} }, dtype: np.float32); | } }, dtype: np.float32); | ||||
Assert.AreEqual(expected, actual.numpy()); | |||||
Assert.IsTrue(expected == actual.numpy()); | |||||
} | } | ||||
[TestMethod] | [TestMethod] | ||||
@@ -39,7 +39,7 @@ public class LossesTest : EagerModeTestBase | |||||
// Using 'none' reduction type. | // Using 'none' reduction type. | ||||
bce = tf.keras.losses.BinaryCrossentropy(from_logits: true, reduction: Reduction.NONE); | bce = tf.keras.losses.BinaryCrossentropy(from_logits: true, reduction: Reduction.NONE); | ||||
loss = bce.Call(y_true, y_pred); | loss = bce.Call(y_true, y_pred); | ||||
Assert.AreEqual(new float[] { 0.23515666f, 1.4957594f }, loss.numpy()); | |||||
Assert.IsTrue(new NDArray(new float[] { 0.23515666f, 1.4957594f }) == loss.numpy()); | |||||
} | } | ||||
/// <summary> | /// <summary> | ||||
@@ -20,10 +20,10 @@ | |||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||||
</PackageReference> | </PackageReference> | ||||
<PackageReference Include="SciSharp.TensorFlow.Redist" Version="2.11.3" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\..\helpers\Tensorflow.UnitTest.RedistHolder\Tensorflow.UnitTest.RedistHolder.csproj" /> | |||||
<ProjectReference Include="..\..\src\TensorFlowNET.Keras\Tensorflow.Keras.csproj" /> | <ProjectReference Include="..\..\src\TensorFlowNET.Keras\Tensorflow.Keras.csproj" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
@@ -51,11 +51,10 @@ | |||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||||
</PackageReference> | </PackageReference> | ||||
<PackageReference Include="SciSharp.TensorFlow.Redist" Version="2.11.3" /> | |||||
<PackageReference Include="SciSharp.TensorFlow.Redist-Lite" Version="2.6.0" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\..\helpers\Tensorflow.UnitTest.RedistHolder\Tensorflow.UnitTest.RedistHolder.csproj" /> | |||||
<ProjectReference Include="..\..\src\TensorFlowNET.Core\Tensorflow.Binding.csproj" /> | <ProjectReference Include="..\..\src\TensorFlowNET.Core\Tensorflow.Binding.csproj" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
@@ -45,10 +45,10 @@ | |||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" /> | <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" /> | ||||
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" /> | <PackageReference Include="MSTest.TestAdapter" Version="2.2.8" /> | ||||
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" /> | <PackageReference Include="MSTest.TestFramework" Version="2.2.8" /> | ||||
<PackageReference Include="SciSharp.TensorFlow.Redist" Version="2.11.3" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\..\helpers\Tensorflow.UnitTest.RedistHolder\Tensorflow.UnitTest.RedistHolder.csproj" /> | |||||
<ProjectReference Include="..\..\src\TensorFlowNET.Core\Tensorflow.Binding.csproj" /> | <ProjectReference Include="..\..\src\TensorFlowNET.Core\Tensorflow.Binding.csproj" /> | ||||
<ProjectReference Include="..\..\src\TensorFlowNET.Text\Tensorflow.Text.csproj" /> | <ProjectReference Include="..\..\src\TensorFlowNET.Text\Tensorflow.Text.csproj" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
@@ -1,4 +1,4 @@ | |||||
<Project Sdk="Microsoft.NET.Sdk"> | |||||
<Project Sdk="Microsoft.NET.Sdk"> | |||||
<PropertyGroup> | <PropertyGroup> | ||||
<TargetFramework>net6</TargetFramework> | <TargetFramework>net6</TargetFramework> | ||||
@@ -13,10 +13,10 @@ | |||||
<PackageReference Include="MSTest.TestAdapter" Version="2.2.10" /> | <PackageReference Include="MSTest.TestAdapter" Version="2.2.10" /> | ||||
<PackageReference Include="MSTest.TestFramework" Version="2.2.10" /> | <PackageReference Include="MSTest.TestFramework" Version="2.2.10" /> | ||||
<PackageReference Include="coverlet.collector" Version="3.1.2" /> | <PackageReference Include="coverlet.collector" Version="3.1.2" /> | ||||
<PackageReference Include="SciSharp.TensorFlow.Redist" Version="2.11.3" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\..\helpers\Tensorflow.UnitTest.RedistHolder\Tensorflow.UnitTest.RedistHolder.csproj" /> | |||||
<ProjectReference Include="..\..\src\TensorflowNET.Hub\Tensorflow.Hub.csproj" /> | <ProjectReference Include="..\..\src\TensorflowNET.Hub\Tensorflow.Hub.csproj" /> | ||||
</ItemGroup> | </ItemGroup> | ||||