python - jupyter notebook和google colaboratory之间的LSTM性能差异
问题描述
首先,对不起我的英语不好。这不是我的第一语言。
我是 python 新手,我一直在用 jupyter notebook 练习我的时间序列预测 keras LSTM 问题。我的代码与示例代码完全相同,但我发现我在训练期间的验证损失比示例大得多。(示例:0.01~0.03,我的:0.6~0.4)绘图结果也表明该模型无法正确预测。
当我尝试在 google colaboratory 上运行相同的代码时,模型运行良好,验证损失与示例相当,预测性能也与示例相当。
我想知道我的 jupyter 笔记本有什么问题。它与 tensorflow/python 版本有关吗?也许是m1芯片?如果不是,我想知道是什么让模型在本地环境中的性能如此糟糕。(M1 macbook air,Tensorflow 版本:2.5.0,Python 版本:3.8.10)
下面是我的代码,只是一个简单的 keras LSTM 模型。
BATCH_SIZE = 256
BUFFER_SIZE = 10000
train_univariate = tf.data.Dataset.from_tensor_slices((x_train_uni, y_train_uni))
train_univariate = train_univariate.cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE).repeat()
val_univariate = tf.data.Dataset.from_tensor_slices((x_val_uni, y_val_uni))
val_univariate = val_univariate.batch(BATCH_SIZE).repeat()
simple_lstm_model = tf.keras.models.Sequential([
tf.keras.layers.LSTM(8, input_shape = x_train_uni.shape[-2:]),
tf.keras.layers.Dense(1)
])
simple_lstm_model.compile(optimizer = 'adam', loss = 'mae')
EVALUATION_INTERVAL = 200
EPOCHS = 10
simple_lstm_model.fit(train_univariate, epochs = EPOCHS, steps_per_epoch = EVALUATION_INTERVAL,
validation_data = val_univariate, validation_steps = 50)
谢谢。
解决方案
推荐阅读
- asp.net - 将 Elasticsearch 与 .Net Core 2.2 一起使用是否可行?如何配置它以获取简单的获取查询 API?
- javascript - 如何从客户端构建查找查询以搜索 mongo db?
- php - 在级联下拉列表中显示容易选择的数据
- html - 为什么 chrome 在我的表单的某个字段中显示地址建议?
- mysql - JDBCTemplate 不处理数据库中的 Unicode 字符
- sql-server - 许多表上的 EF Core 一对一关系允许重复条目
- node.js - 在使用 chai 进行测试期间无法将错误与 throw 匹配
- java - Unknown name value [] for enum class having multiple enums
- c++ - 使用 cmake 在 macOS 上共享库的链接器问题
- experimental-design - 如何在 ztree 中使用表加载器?