@@ -377,8 +377,8 @@ namespace Tensorflow.Gradients | |||||
grad, | grad, | ||||
op.get_attr_list<int>("ksize"), | op.get_attr_list<int>("ksize"), | ||||
op.get_attr_list<int>("strides"), | op.get_attr_list<int>("strides"), | ||||
op.get_attr("padding").ToString(), | |||||
op.get_attr("data_format").ToString()) | |||||
op.get_attr<string>("padding"), | |||||
op.get_attr<string>("data_format")) | |||||
}; | }; | ||||
} | } | ||||
@@ -206,12 +206,11 @@ namespace Tensorflow | |||||
return result; | return result; | ||||
} | } | ||||
internal unsafe int _get_attr_int(string name) | |||||
internal unsafe long _get_attr_int(string name) | |||||
{ | { | ||||
Status status = new(); | |||||
int result; | |||||
c_api.TF_OperationGetAttrInt(_handle, name, new IntPtr(&result), status); | |||||
status.Check(true); | |||||
long result; | |||||
c_api.TF_OperationGetAttrInt(_handle, name, new IntPtr(&result), tf.Status); | |||||
tf.Status.Check(true); | |||||
return result; | return result; | ||||
} | } | ||||
@@ -4,11 +4,11 @@ | |||||
<TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks> | <TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks> | ||||
<AssemblyName>Tensorflow.Binding</AssemblyName> | <AssemblyName>Tensorflow.Binding</AssemblyName> | ||||
<RootNamespace>Tensorflow</RootNamespace> | <RootNamespace>Tensorflow</RootNamespace> | ||||
<TargetTensorFlow>2.10.0</TargetTensorFlow> | |||||
<Version>0.110.1</Version> | |||||
<TargetTensorFlow>2.11.0</TargetTensorFlow> | |||||
<Version>0.110.2</Version> | |||||
<LangVersion>10.0</LangVersion> | <LangVersion>10.0</LangVersion> | ||||
<Nullable>enable</Nullable> | <Nullable>enable</Nullable> | ||||
<Authors>Haiping Chen, Meinrad Recheis, Eli Belash</Authors> | |||||
<Authors>Haiping Chen, Eli Belash, Yaohui Liu, Meinrad Recheis</Authors> | |||||
<Company>SciSharp STACK</Company> | <Company>SciSharp STACK</Company> | ||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild> | <GeneratePackageOnBuild>False</GeneratePackageOnBuild> | ||||
<Copyright>Apache 2.0, Haiping Chen $([System.DateTime]::UtcNow.ToString(yyyy))</Copyright> | <Copyright>Apache 2.0, Haiping Chen $([System.DateTime]::UtcNow.ToString(yyyy))</Copyright> | ||||
@@ -23,7 +23,8 @@ https://tensorflownet.readthedocs.io</Description> | |||||
<AssemblyVersion>0.110.1.0</AssemblyVersion> | <AssemblyVersion>0.110.1.0</AssemblyVersion> | ||||
<PackageReleaseNotes> | <PackageReleaseNotes> | ||||
tf.net 0.110.x and above are based on tensorflow native 2.11.0 | tf.net 0.110.x and above are based on tensorflow native 2.11.0 | ||||
* RNN, LSTM works. | |||||
* Support RNN, LSTM model. | |||||
* Support Transformer model. | |||||
tf.net 0.100.x and above are based on tensorflow native 2.10.0 | tf.net 0.100.x and above are based on tensorflow native 2.10.0 | ||||
@@ -42,12 +43,11 @@ https://tensorflownet.readthedocs.io</Description> | |||||
tf.net 0.10x.x aligns with TensorFlow v2.10.x native library. | tf.net 0.10x.x aligns with TensorFlow v2.10.x native library. | ||||
tf.net 0.11x.x aligns with TensorFlow v2.11.x native library. | tf.net 0.11x.x aligns with TensorFlow v2.11.x native library. | ||||
</PackageReleaseNotes> | </PackageReleaseNotes> | ||||
<FileVersion>0.110.1.0</FileVersion> | |||||
<FileVersion>0.110.2.0</FileVersion> | |||||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | <PackageLicenseFile>LICENSE</PackageLicenseFile> | ||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | ||||
<PackageOutputPath>packages</PackageOutputPath> | <PackageOutputPath>packages</PackageOutputPath> | ||||
<SignAssembly>true</SignAssembly> | <SignAssembly>true</SignAssembly> | ||||
<AssemblyOriginatorKeyFile>Open.snk</AssemblyOriginatorKeyFile> | |||||
<Platforms>AnyCPU;x64</Platforms> | <Platforms>AnyCPU;x64</Platforms> | ||||
<PackageId>TensorFlow.NET</PackageId> | <PackageId>TensorFlow.NET</PackageId> | ||||
<Configurations>Debug;Release;GPU</Configurations> | <Configurations>Debug;Release;GPU</Configurations> | ||||
@@ -88,6 +88,66 @@ https://tensorflownet.readthedocs.io</Description> | |||||
<DefineConstants /> | <DefineConstants /> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netstandard2.0|AnyCPU'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netstandard2.0|x64'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|netstandard2.0|AnyCPU'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|netstandard2.0|x64'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='GPU|netstandard2.0|AnyCPU'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='GPU|netstandard2.0|x64'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net6.0|AnyCPU'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net6.0|x64'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|AnyCPU'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|x64'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='GPU|net6.0|AnyCPU'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='GPU|net6.0|x64'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1570,1573,1591,1712,8603,8604,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<ItemGroup> | <ItemGroup> | ||||
<Compile Remove="Distribute\**" /> | <Compile Remove="Distribute\**" /> | ||||
<Compile Remove="Models\**" /> | <Compile Remove="Models\**" /> | ||||
@@ -180,8 +180,7 @@ namespace Tensorflow | |||||
array_ops.stack(end.ToArray()), | array_ops.stack(end.ToArray()), | ||||
array_ops.stack(strides.ToArray())); | array_ops.stack(strides.ToArray())); | ||||
return gen_array_ops.strided_slice( | |||||
this, | |||||
return array_ops.strided_slice(this, | |||||
packed_begin, | packed_begin, | ||||
packed_end, | packed_end, | ||||
packed_strides, | packed_strides, | ||||
@@ -44,7 +44,6 @@ namespace Tensorflow.Keras | |||||
/// <summary> | /// <summary> | ||||
/// Register the name-activation mapping in this static class. | /// Register the name-activation mapping in this static class. | ||||
/// </summary> | /// </summary> | ||||
/// <param name="name"></param> | |||||
/// <param name="activation"></param> | /// <param name="activation"></param> | ||||
private static void RegisterActivation(Activation activation) | private static void RegisterActivation(Activation activation) | ||||
{ | { | ||||
@@ -5,9 +5,6 @@ namespace Tensorflow.Keras.Callbacks; | |||||
/// <summary> | /// <summary> | ||||
/// Stop training when a monitored metric has stopped improving. | /// Stop training when a monitored metric has stopped improving. | ||||
/// </summary> | /// </summary> | ||||
/// <param name="parameters"></param> | |||||
/// <param name="monitor"></param> | |||||
public class EarlyStopping: ICallback | public class EarlyStopping: ICallback | ||||
{ | { | ||||
int _paitence; | int _paitence; | ||||
@@ -52,7 +52,7 @@ namespace Tensorflow.Keras.Engine.DataAdapters | |||||
/// <summary> | /// <summary> | ||||
/// Convert a Tensor of indices into a dataset of batched indices. | /// Convert a Tensor of indices into a dataset of batched indices. | ||||
/// </summary> | /// </summary> | ||||
/// <param name="tensor"></param> | |||||
/// <param name="indices"></param> | |||||
/// <returns></returns> | /// <returns></returns> | ||||
IDatasetV2 slice_batch_indices(Tensor indices) | IDatasetV2 slice_batch_indices(Tensor indices) | ||||
{ | { | ||||
@@ -10,7 +10,7 @@ namespace Tensorflow.Keras.Engine | |||||
/// Wraps `call`, applying pre- and post-processing steps. | /// Wraps `call`, applying pre- and post-processing steps. | ||||
/// </summary> | /// </summary> | ||||
/// <param name="inputs"></param> | /// <param name="inputs"></param> | ||||
/// <param name="state"></param> | |||||
/// <param name="states"></param> | |||||
/// <param name="training"></param> | /// <param name="training"></param> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
public virtual Tensors Apply(Tensors inputs, Tensors states = null, bool? training = false, IOptionalArgs? optional_args = null) | public virtual Tensors Apply(Tensors inputs, Tensors states = null, bool? training = false, IOptionalArgs? optional_args = null) | ||||
@@ -1,7 +1,5 @@ | |||||
using System; | using System; | ||||
using Tensorflow.Keras.Utils; | using Tensorflow.Keras.Utils; | ||||
using static Tensorflow.Binding; | |||||
using static Tensorflow.KerasApi; | |||||
namespace Tensorflow.Keras.Engine | namespace Tensorflow.Keras.Engine | ||||
{ | { | ||||
@@ -9,14 +7,6 @@ namespace Tensorflow.Keras.Engine | |||||
{ | { | ||||
Tensors FunctionalConstructionCall(Tensors inputs) | Tensors FunctionalConstructionCall(Tensors inputs) | ||||
{ | { | ||||
bool mask_arg_passed_by_framework = false; | |||||
bool training_arg_passed_by_framework = false; | |||||
Tensor training_value = null; | |||||
if (training_value == null) | |||||
{ | |||||
training_arg_passed_by_framework = true; | |||||
} | |||||
if (base_layer_utils.needs_keras_history(inputs)) | if (base_layer_utils.needs_keras_history(inputs)) | ||||
base_layer_utils.create_keras_history(inputs); | base_layer_utils.create_keras_history(inputs); | ||||
@@ -15,7 +15,7 @@ namespace Tensorflow.Keras.Engine | |||||
public partial class Model | public partial class Model | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// Returns the loss value & metrics values for the model in test mode. | |||||
/// Returns the loss value and metrics values for the model in test mode. | |||||
/// </summary> | /// </summary> | ||||
/// <param name="x"></param> | /// <param name="x"></param> | ||||
/// <param name="y"></param> | /// <param name="y"></param> | ||||
@@ -29,7 +29,9 @@ namespace Tensorflow.Keras.Engine | |||||
/// <summary> | /// <summary> | ||||
/// The logic for one training step. | /// The logic for one training step. | ||||
/// </summary> | /// </summary> | ||||
/// <param name="data"></param> | |||||
/// <param name="data_handler"></param> | |||||
/// <param name="x"></param> | |||||
/// <param name="y"></param> | |||||
/// <returns></returns> | /// <returns></returns> | ||||
Dictionary<string, float> train_step(DataHandler data_handler, Tensors x, Tensors y) | Dictionary<string, float> train_step(DataHandler data_handler, Tensors x, Tensors y) | ||||
{ | { | ||||
@@ -72,8 +72,8 @@ namespace Tensorflow.Keras | |||||
/// <summary> | /// <summary> | ||||
/// `Model` groups layers into an object with training and inference features. | /// `Model` groups layers into an object with training and inference features. | ||||
/// </summary> | /// </summary> | ||||
/// <param name="input"></param> | |||||
/// <param name="output"></param> | |||||
/// <param name="inputs"></param> | |||||
/// <param name="outputs"></param> | |||||
/// <returns></returns> | /// <returns></returns> | ||||
public IModel Model(Tensors inputs, Tensors outputs, string name = null) | public IModel Model(Tensors inputs, Tensors outputs, string name = null) | ||||
=> new Functional(inputs, outputs, name: name); | => new Functional(inputs, outputs, name: name); | ||||
@@ -1,24 +1,18 @@ | |||||
using Tensorflow.Keras.Engine; | using Tensorflow.Keras.Engine; | ||||
using Tensorflow.Keras.ArgsDefinition; | using Tensorflow.Keras.ArgsDefinition; | ||||
using static Tensorflow.Binding; | |||||
using static Tensorflow.KerasApi; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Linq; | using System.Linq; | ||||
using Tensorflow.Keras.Saving; | using Tensorflow.Keras.Saving; | ||||
using Tensorflow.Common.Types; | using Tensorflow.Common.Types; | ||||
/// <summary> | |||||
/// Base class for attention layers that can be used in sequence DNN/CNN models. | |||||
///This file follows the terminology of https://arxiv.org/abs/1706.03762 Figure 2. | |||||
///Attention is formed by three tensors: Query, Key and Value. | |||||
/// </summary> | |||||
namespace Tensorflow.Keras.Layers | namespace Tensorflow.Keras.Layers | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// Base Attention class for Dense networks. | /// Base Attention class for Dense networks. | ||||
/// This file follows the terminology of https://arxiv.org/abs/1706.03762 Figure 2. | |||||
/// Attention is formed by three tensors: Query, Key and Value. | |||||
/// This class is suitable for Dense or CNN networks, and not for RNN networks. | /// This class is suitable for Dense or CNN networks, and not for RNN networks. | ||||
/// Implementations of attention mechanisms should inherit from this class, and | /// Implementations of attention mechanisms should inherit from this class, and | ||||
/// reuse the `apply_attention_scores()` method. | /// reuse the `apply_attention_scores()` method. | ||||
@@ -183,9 +183,6 @@ namespace Tensorflow.Keras.Layers | |||||
/// <param name="use_bias">Boolean, whether the layer uses a bias vector.</param> | /// <param name="use_bias">Boolean, whether the layer uses a bias vector.</param> | ||||
/// <param name="kernel_initializer">The name of the initializer for the kernel weights matrix (see keras.initializers).</param> | /// <param name="kernel_initializer">The name of the initializer for the kernel weights matrix (see keras.initializers).</param> | ||||
/// <param name="bias_initializer">The name of the initializer for the bias vector (see keras.initializers).</param> | /// <param name="bias_initializer">The name of the initializer for the bias vector (see keras.initializers).</param> | ||||
/// <param name="kernel_regularizer">The name of the regularizer function applied to the kernel weights matrix (see keras.regularizers).</param> | |||||
/// <param name="bias_regularizer">The name of the regularizer function applied to the bias vector (see keras.regularizers).</param> | |||||
/// <param name="activity_regularizer">The name of the regularizer function applied to the output of the layer (its "activation") (see keras.regularizers).</param> | |||||
/// <returns>A tensor of rank 4+ representing activation(conv2d(inputs, kernel) + bias).</returns> | /// <returns>A tensor of rank 4+ representing activation(conv2d(inputs, kernel) + bias).</returns> | ||||
public ILayer Conv2D(int filters, | public ILayer Conv2D(int filters, | ||||
Shape kernel_size = null, | Shape kernel_size = null, | ||||
@@ -2,7 +2,6 @@ | |||||
using Tensorflow.Keras.Engine; | using Tensorflow.Keras.Engine; | ||||
using Tensorflow.Keras.Saving; | using Tensorflow.Keras.Saving; | ||||
using Tensorflow.Common.Types; | using Tensorflow.Common.Types; | ||||
using Tensorflow.Common.Types; | |||||
namespace Tensorflow.Keras.Layers.Reshaping | namespace Tensorflow.Keras.Layers.Reshaping | ||||
{ | { | ||||
@@ -242,10 +242,9 @@ namespace Tensorflow.Keras.Layers.Rnn | |||||
/// | /// | ||||
/// </summary> | /// </summary> | ||||
/// <param name="inputs"></param> | /// <param name="inputs"></param> | ||||
/// <param name="mask">Binary tensor of shape [batch_size, timesteps] indicating whether a given timestep should be masked</param> | |||||
/// <param name="training"></param> | |||||
/// <param name="initial_state">List of initial state tensors to be passed to the first call of the cell</param> | /// <param name="initial_state">List of initial state tensors to be passed to the first call of the cell</param> | ||||
/// <param name="constants">List of constant tensors to be passed to the cell at each timestep</param> | |||||
/// <param name="training"></param> | |||||
/// <param name="optional_args"></param> | |||||
/// <returns></returns> | /// <returns></returns> | ||||
/// <exception cref="ValueError"></exception> | /// <exception cref="ValueError"></exception> | ||||
/// <exception cref="NotImplementedException"></exception> | /// <exception cref="NotImplementedException"></exception> | ||||
@@ -6,7 +6,7 @@ namespace Tensorflow.Keras.Preprocessings | |||||
public partial class DatasetUtils | public partial class DatasetUtils | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// Potentially restict samples & labels to a training or validation split. | |||||
/// Potentially restict samples and labels to a training or validation split. | |||||
/// </summary> | /// </summary> | ||||
/// <param name="samples"></param> | /// <param name="samples"></param> | ||||
/// <param name="labels"></param> | /// <param name="labels"></param> | ||||
@@ -693,7 +693,6 @@ namespace Tensorflow.Keras.Saving | |||||
/// Infers input shape of layer from SavedModel functions. | /// Infers input shape of layer from SavedModel functions. | ||||
/// </summary> | /// </summary> | ||||
/// <param name="layer_node_id"></param> | /// <param name="layer_node_id"></param> | ||||
/// <param name="convert_to_shapes"></param> | |||||
/// <returns></returns> | /// <returns></returns> | ||||
private TensorSpec _infer_inputs(int layer_node_id) | private TensorSpec _infer_inputs(int layer_node_id) | ||||
{ | { | ||||
@@ -7,7 +7,7 @@ | |||||
<Nullable>enable</Nullable> | <Nullable>enable</Nullable> | ||||
<RootNamespace>Tensorflow.Keras</RootNamespace> | <RootNamespace>Tensorflow.Keras</RootNamespace> | ||||
<Platforms>AnyCPU;x64</Platforms> | <Platforms>AnyCPU;x64</Platforms> | ||||
<Version>0.11.1</Version> | |||||
<Version>0.11.2</Version> | |||||
<Authors>Haiping Chen</Authors> | <Authors>Haiping Chen</Authors> | ||||
<Product>Keras for .NET</Product> | <Product>Keras for .NET</Product> | ||||
<Copyright>Apache 2.0, Haiping Chen 2023</Copyright> | <Copyright>Apache 2.0, Haiping Chen 2023</Copyright> | ||||
@@ -26,7 +26,8 @@ | |||||
* Add Subtract layer | * Add Subtract layer | ||||
* Text preprocessing | * Text preprocessing | ||||
* Preprocessing.timeseries_dataset_from_array | * Preprocessing.timeseries_dataset_from_array | ||||
* Fixed memory leak for YOLOv3 model.</PackageReleaseNotes> | |||||
* Fixed memory leak for YOLOv3 model. | |||||
* Support RNN and LSTM models</PackageReleaseNotes> | |||||
<Description>Keras for .NET | <Description>Keras for .NET | ||||
Keras is an API designed for human beings, not machines. Keras follows best practices for reducing cognitive load: it offers consistent & simple APIs, it minimizes the number of user actions required for common use cases, and it provides clear & actionable error messages.</Description> | Keras is an API designed for human beings, not machines. Keras follows best practices for reducing cognitive load: it offers consistent & simple APIs, it minimizes the number of user actions required for common use cases, and it provides clear & actionable error messages.</Description> | ||||
@@ -36,10 +37,10 @@ Keras is an API designed for human beings, not machines. Keras follows best prac | |||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | ||||
<PackageOutputPath>packages</PackageOutputPath> | <PackageOutputPath>packages</PackageOutputPath> | ||||
<RepositoryType>Git</RepositoryType> | <RepositoryType>Git</RepositoryType> | ||||
<SignAssembly>true</SignAssembly> | |||||
<SignAssembly>False</SignAssembly> | |||||
<AssemblyOriginatorKeyFile>Open.snk</AssemblyOriginatorKeyFile> | <AssemblyOriginatorKeyFile>Open.snk</AssemblyOriginatorKeyFile> | ||||
<AssemblyVersion>0.11.1.0</AssemblyVersion> | |||||
<FileVersion>0.11.1.0</FileVersion> | |||||
<AssemblyVersion>0.11.2.0</AssemblyVersion> | |||||
<FileVersion>0.11.2.0</FileVersion> | |||||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | <PackageLicenseFile>LICENSE</PackageLicenseFile> | ||||
<Configurations>Debug;Release;GPU</Configurations> | <Configurations>Debug;Release;GPU</Configurations> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
@@ -70,6 +71,74 @@ Keras is an API designed for human beings, not machines. Keras follows best prac | |||||
<DefineConstants /> | <DefineConstants /> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|netstandard2.0|AnyCPU'"> | |||||
<Optimize>True</Optimize> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|AnyCPU'"> | |||||
<Optimize>True</Optimize> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|netstandard2.0|x64'"> | |||||
<Optimize>True</Optimize> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|x64'"> | |||||
<Optimize>True</Optimize> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netstandard2.0|AnyCPU'"> | |||||
<Optimize>False</Optimize> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net6.0|AnyCPU'"> | |||||
<Optimize>False</Optimize> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netstandard2.0|x64'"> | |||||
<Optimize>False</Optimize> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net6.0|x64'"> | |||||
<Optimize>False</Optimize> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='GPU|netstandard2.0|AnyCPU'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='GPU|netstandard2.0|x64'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='GPU|net6.0|AnyCPU'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='GPU|net6.0|x64'"> | |||||
<WarningLevel>1</WarningLevel> | |||||
<NoWarn>$(NoWarn),1573,1591,1712,8602,8603,8625,CS0612</NoWarn> | |||||
</PropertyGroup> | |||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="HDF5-CSharp" Version="1.17.0" /> | <PackageReference Include="HDF5-CSharp" Version="1.17.0" /> | ||||
<PackageReference Include="MethodBoundaryAspect.Fody" Version="2.0.148" /> | <PackageReference Include="MethodBoundaryAspect.Fody" Version="2.0.148" /> | ||||