kernel_initializer 是否适用于 LSTM(C#.TensorFlow.NET)?

问题描述 投票:0回答:1
Sequential model = keras.Sequential();
model.add(keras.Input(shape: (1, inputSize))); 
model.add(keras.layers.LSTM(units: numberOfHiddenUnits, kernel_initializer: 'glorot_uiform',   return_sequences: true)); 
kernel_initializer: 'glorot_uiform'<-- causes compile fails :


Program.cs(71,89,71,89): error CS1012: Too many characters in character literal

我希望 kernel_initializer 能够像文档建议的自动完成广告一样工作。

c# lstm
1个回答
0
投票

您在使用 TensorFlow.NET 的 C# 代码中遇到的错误与语法问题有关,而不是与

kernel_initializer
参数本身的问题有关。

在C#中,单引号用于字符文字(代表单个字符),而双引号用于字符串文字。错误消息

error CS1012: Too many characters in character literal
表示您对字符串使用了单引号,在您的情况下为
'glorot_uniform'

要解决此问题,您应该对字符串文字使用双引号。所以,正确的代码行应该是:

model.add(keras.layers.LSTM(units: numberOfHiddenUnits, kernel_initializer: "glorot_uniform", return_sequences: true));

现在

"glorot_uniform"
现在用双引号引起来。这应该可以解决编译错误。

我希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.