diff --git a/src/TensorFlowNET.Core/Tensorflow.Binding.csproj b/src/TensorFlowNET.Core/Tensorflow.Binding.csproj
index 36449826..0ebe61d0 100644
--- a/src/TensorFlowNET.Core/Tensorflow.Binding.csproj
+++ b/src/TensorFlowNET.Core/Tensorflow.Binding.csproj
@@ -107,8 +107,8 @@ https://tensorflownet.readthedocs.io
-
+
-
+
diff --git a/src/TensorFlowNET.Keras/Optimizers/OptimizerV2.cs b/src/TensorFlowNET.Keras/Optimizers/OptimizerV2.cs
index 73e35d02..a52c5ada 100644
--- a/src/TensorFlowNET.Keras/Optimizers/OptimizerV2.cs
+++ b/src/TensorFlowNET.Keras/Optimizers/OptimizerV2.cs
@@ -48,7 +48,7 @@ namespace Tensorflow.Keras.Optimizers
public void apply_gradients((Tensor, ResourceVariable) grads_and_vars,
string name = null,
bool experimental_aggregate_gradients = true)
- => apply_gradients(grads_and_vars,
+ => apply_gradients(new[] { grads_and_vars },
name: name,
experimental_aggregate_gradients: experimental_aggregate_gradients);
diff --git a/src/TensorFlowNET.Keras/Saving/hdf5_format.cs b/src/TensorFlowNET.Keras/Saving/hdf5_format.cs
index 0c340477..a3705dfb 100644
--- a/src/TensorFlowNET.Keras/Saving/hdf5_format.cs
+++ b/src/TensorFlowNET.Keras/Saving/hdf5_format.cs
@@ -84,23 +84,18 @@ namespace Tensorflow.Keras.Saving
{
string original_keras_version = "2.5.0";
string original_backend = null;
- if (Hdf5.AttributeExists(f, "keras_version"))
- {
- var (success, attr) = Hdf5.ReadStringAttributes(f, "keras_version", "");
- if (success)
- original_keras_version = attr.First();
- // keras version should be 2.5.0+
- var ver_major = int.Parse(original_keras_version.Split('.')[0]);
- var ver_minor = int.Parse(original_keras_version.Split('.')[1]);
- if (ver_major < 2 || (ver_major == 2 && ver_minor < 5))
- throw new ValueError("keras version should be 2.5.0 or later.");
- }
- if (Hdf5.AttributeExists(f, "backend"))
- {
- var (success, attr) = Hdf5.ReadStringAttributes(f, "backend", "");
- if (success)
- original_backend = attr.First();
- }
+ var (success, attr) = Hdf5.ReadStringAttributes(f, "keras_version", "", true);
+ if (success)
+ original_keras_version = attr.First();
+ // keras version should be 2.5.0+
+ var ver_major = int.Parse(original_keras_version.Split('.')[0]);
+ var ver_minor = int.Parse(original_keras_version.Split('.')[1]);
+ if (ver_major < 2 || (ver_major == 2 && ver_minor < 5))
+ throw new ValueError("keras version should be 2.5.0 or later.");
+
+ (success, attr) = Hdf5.ReadStringAttributes(f, "backend", "", true);
+ if (success)
+ original_backend = attr.First();
var filtered_layers = new List();
foreach (var layer in layers)
@@ -137,7 +132,7 @@ namespace Tensorflow.Keras.Saving
var weight_names = load_attributes_from_hdf5_group(g, "weight_names");
foreach (var i_ in weight_names)
{
- (bool success, Array result) = Hdf5.ReadDataset(g, i_);
+ (success, Array result) = Hdf5.ReadDataset(g, i_);
if (success)
weight_values.Add(np.array(result));
}
@@ -329,12 +324,10 @@ namespace Tensorflow.Keras.Saving
public static string[] load_attributes_from_hdf5_group(long group, string name)
{
- if (Hdf5.AttributeExists(group, name))
- {
- var (success, attr) = Hdf5.ReadStringAttributes(group, name, "");
- if (success)
- return attr.ToArray();
- }
+ var (success, attr) = Hdf5.ReadStringAttributes(group, name, "", true);
+ if (success)
+ return attr.ToArray();
+
return null;
}
diff --git a/src/TensorFlowNET.Keras/Tensorflow.Keras.csproj b/src/TensorFlowNET.Keras/Tensorflow.Keras.csproj
index 0c3eff9f..23c99620 100644
--- a/src/TensorFlowNET.Keras/Tensorflow.Keras.csproj
+++ b/src/TensorFlowNET.Keras/Tensorflow.Keras.csproj
@@ -70,10 +70,10 @@ Keras is an API designed for human beings, not machines. Keras follows best prac
-
-
+
+
-
+