当我使用一组固定的参数多次运行自动编码器时,在准确性和其他指标上会有不同的结果。我想这是因为最初神经网络选择随机权重。 我希望结果总是一样。我可以修改权重的随机选择吗?如何使结果具有确定性而不是随机性?
答案 0 :(得分:2)
您需要设置种子
我通常使用以下简单功能
def keras_seeding(seednum):
np.random.seed(seednum)
from tensorflow import set_random_seed
set_random_seed(seednum)
random.seed(seednum)
os.environ['PYTHONHASHSEED'] = str(seednum)
seednum=1123
keras_seeding(seednum)
答案 1 :(得分:0)
如果使用Keras,则在每一层都可以提及重量初始化器。您可以在this链接中了解有关各种类型的初始化程序的更多信息。
Example :
model = Sequential()
model.add(Conv2D(64,(3,3),kernel_initializer="he_normal"))
model.add(Dense(10,kernel_initializer='ones'))
我刚刚在这里提到了示例初始化程序。寻找最适合您的情况的一种。