栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如果Keras结果无法再现,那么比较模型和选择超参数的最佳实践是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如果Keras结果无法再现,那么比较模型和选择超参数的最佳实践是什么?

该问题似乎在Tensorflow 2.0中得以解决(至少在简单模型上如此)!这是一个似乎可以产生可重复结果的代码段。

import os####*IMPORANT*: Have to do this line *before* importing tensorflowos.environ['PYTHONHASHSEED']=str(1)import tensorflow as tfimport tensorflow.keras as kerasimport tensorflow.keras.layers import randomimport pandas as pdimport numpy as npdef reset_random_seeds():   os.environ['PYTHONHASHSEED']=str(1)   tf.random.set_seed(1)   np.random.seed(1)   random.seed(1)#make some random datareset_random_seeds()NUM_ROWS = 1000NUM_FEATURES = 10random_data = np.random.normal(size=(NUM_ROWS, NUM_FEATURES))df = pd.Dataframe(data=random_data, columns=['x_' + str(ii) for ii in range(NUM_FEATURES)])y = df.sum(axis=1) + np.random.normal(size=(NUM_ROWS))def run(x, y):    reset_random_seeds()    model = keras.Sequential([ keras.layers.Dense(40, input_dim=df.shape[1], activation='relu'), keras.layers.Dense(20, activation='relu'), keras.layers.Dense(10, activation='relu'), keras.layers.Dense(1, activation='linear')        ])    NUM_EPOCHS = 500    model.compile(optimizer='adam', loss='mean_squared_error')    model.fit(x, y, epochs=NUM_EPOCHS, verbose=0)    predictions = model.predict(x).flatten()    loss = model.evaluate(x,  y) #This prints out the loss by side-effect#With Tensorflow 2.0 this is now reproducible! run(df, y)run(df, y)run(df, y)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639673.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号