使用Kaggle训练模型并下载自己训练的模型

kaggle地址: https://www.kaggle.com/

  1. 上传数据集
    在这里插入图片描述

  2. 添加别人已经上传过的数据集
    在这里插入图片描述

  3. 查看数据路径

import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

在这里插入图片描述

  1. 添加代码
# -*- coding: utf-8 -*-
import datetime

import numpy as np
import tensorflow as tf
from tensorflow.keras.layers import Dropout, Dense, SimpleRNN
import matplotlib.pyplot as plt
import os
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error, mean_absolute_error
import math

# 归一化
sc = MinMaxScaler(feature_range=(0, 1))  # 定义归一化:归一化到(0,1)之间


def get_stock_data(file_path):
    maotai = pd.read_csv(file_path)
    training_set = maotai.iloc[0:2426 - 300, 2:3].values
    test_set = maotai.iloc[2426 - 300:, 2:3].values
    training_set_scaled = sc.fit_transform(training_set)
    test_set_scaled = sc.transform(test_set)
    x_train = []
    y_train = []
    for i in range(60, len(training_set_scaled)):
        x_train.append(training_set_scaled[i - 60:i, 0])
        y_train.append(training_set_scaled[i, 0])
    np.random.seed(7)
    np.random.shuffle(x_train)
    np.random.seed(7)
    np.random.shuffle(y_train)
    x_train = np.array(x_train)
    y_train = np.array(y_train)
    x_train = np.reshape(x_train, (x_train.shape[0], 60, 1))
    x_test = []
    y_test = []
    for i in range(60, len(test_set_scaled)):
        x_test.append(test_set_scaled[i - 60:i, 0])
        y_test.append(test_set_scaled[i, 0])
    x_test = np.array(x_test)
    y_test = np.array(y_test)
    x_test = np.reshape(x_test, (x_test.shape[0], 60, 1))
    return (x_train, y_train), (x_test, y_test)


def load_local_model(model_path):
    if os.path.exists(model_path + '/saved_model.pb'):
        print(datetime.datetime.now())
        local_model = tf.keras.models.load_model(model_path)
    else:
        local_model = tf.keras.Sequential([
            SimpleRNN(80, return_sequences=True),
            Dropout(0.2),
            SimpleRNN(100),
            Dropout(0.2),
            Dense(1)
        ])
        local_model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
                            loss='mean_squared_error')  # 损失函数用均方误差
    return local_model


def show_train_line(history):
    loss = history.history['loss']
    val_loss = history.history['val_loss']
    plt.plot(loss, label='Training Loss')
    plt.plot(val_loss, label='Validation Loss')
    plt.title('Training and Validation Loss')
    plt.legend()
    plt.show()


def stock_predict(model, x_test, y_test):
    # 测试集输入模型进行预测
    predicted_stock_price = model.predict(x_test)
    # 对预测数据还原---从(0,1)反归一化到原始范围
    predicted_stock_price = sc.inverse_transform(predicted_stock_price)
    # 对真实数据还原---从(0,1)反归一化到原始范围
    real_stock_price = sc.inverse_transform(np.reshape(y_test, (y_test.shape[0], 1)))
    # 画出真实数据和预测数据的对比曲线
    plt.plot(real_stock_price, color='red', label='MaoTai Stock Price')
    plt.plot(predicted_stock_price, color='blue', label='Predicted MaoTai Stock Price')
    plt.title('MaoTai Stock Price Prediction')
    plt.xlabel('Time')
    plt.ylabel('MaoTai Stock Price')
    plt.legend()
    plt.show()
    plt.savefig('./model/rnn/compare.jpg')
    mse = mean_squared_error(predicted_stock_price, real_stock_price)
    rmse = math.sqrt(mean_squared_error(predicted_stock_price, real_stock_price))
    mae = mean_absolute_error(predicted_stock_price, real_stock_price)
    print('均方误差: %.6f' % mse)
    print('均方根误差: %.6f' % rmse)
    print('平均绝对误差: %.6f' % mae)


if __name__ == '__main__':
    file_path = '/kaggle/input/databases/SH600519.csv'
    (x_train, y_train), (x_test, y_test) = get_stock_data(file_path)
    model_path = "./model/rnn"
    model = load_local_model(model_path)
    history = model.fit(x_train, y_train, batch_size=265, epochs=100, validation_data=(x_test, y_test),validation_freq=1)
    show_train_line(history)
    model.summary()
    model.save(model_path, save_format="tf")
    stock_predict(model, x_test, y_test)
  1. 选择gpu或者tpu
    在这里插入图片描述

  2. 保存模型
    在这里插入图片描述

  3. 下载训练后的模型
    (1) 保存(File–>Save Version)
    在这里插入图片描述
    Save & Run All(Commit) 一定要选这个
    Advanced Settings–>Always save out 或者Save output for this version
    (下面加速自己选择)
    在这里插入图片描述
    保存后等他运行完
    找到刚才保存的项目
    在这里插入图片描述

在这里插入图片描述

下载完成

  • 7
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用kaggle离线训练自己的神经网络模型的步骤如下: 1. 首先,登录kaggle网站。 2. 在登录后,完成必要的前置工作,例如上传数据集、导入所需的库等。 3. 将所需的代码输入到kaggle的Code环境中。建议将所有训练所需的函数都输入到同一个Code中,以避免在训练时调用自定义库的操作。 4. 在代码调试成功后,由于深度学习模型训练需要耗费大量时间,可以选择保存当前版本并离线训练模型。这样,在训练完成后,可以下载训练好的权重文件。 需要注意以下几点: - kaggle每周为每个用户提供41小时的免费GPU时长,但单次训练最长持续12个小时。超过时长后,训练会自动停止。 - 当选择保存版本并进行离线训练时,需要注意离线训练的环境也会使用你的GPU免费训练时长。如果你不退出kaggle而是继续开启GPU观察模型训练,那么你将使用两倍的GPU训练时长。 通过以上步骤,你可以得到一个训练好的权重文件,然后可以下载该文件并在测试程序中使用。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [使用kaggle的GPU离线训练自己的模型](https://blog.csdn.net/m0_60681041/article/details/122900156)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [使用kaggle GPU跑自己的模型](https://blog.csdn.net/qq_45800517/article/details/123807337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值