学习深度学习代码各个步骤都是为了啥

Posted 盖丽男

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习深度学习代码各个步骤都是为了啥相关的知识,希望对你有一定的参考价值。


活动地址:CSDN21天学习挑战赛

学习日记

**
一个深度学习的例子,代码一般会包括以下几个步骤:

  1. 设置GPU
  2. 加载数据
  3. 处理数据
    1. 归一化
    2. 设置测试集
  4. 构建模型
  5. 激活模型
  6. 训练模型
  7. 结果可视化
    1. 绘制loss图
    2. 预测
    3. 评估

设置GPU

gpus = tf.config.list_physical_devices("GPU")
if gpus:
    tf.config.experimental.set_memory_growth(gpus[0], True)  
     #设置GPU显存用量按需使用
    tf.config.set_visible_devices([gpus[0]],"GPU")

通过tf.config.list_physical_devices,我们可以获得当前主机上某种特定运算设备类型(如 GPU 或 CPU )的列表
所以这段话就是,获取机器的gpu列表,然后用第一个

加载数据

# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签,运行配置参数中的字体(font)为黑体(SimHei)
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

data = pd.read_csv('./datasets/SH600519.csv')  # 读取股票文件

"""
前(2426-300=2126)天的开盘价作为训练集,表格从0开始计数,2:3 是提取[2:3)列,前闭后开,故提取出C列开盘价
后300天的开盘价作为测试集
"""
training_set = data.iloc[0:2426 - 300, 2:3].values  
test_set = data.iloc[2426 - 300:, 2:3].values  


plt.rcParams[‘配置参数’]=[修改值] 是在修改matplotlib的配置

然后把数据读到data对象里

iloc[ : , : ]
前面的冒号就是取行数,后面的冒号是取列数
左闭右开原则

处理数据

归一化

#数据转换的范围是[0,1],sc代表min和max
sc           = MinMaxScaler(feature_range=(0, 1))
#sc代表min和max,fit找出每列的Min和Max,将x(i,j)代入归一化公式进行transform
training_set = sc.fit_transform(training_set)
#每一列数据的归一化公式已确定,直接代入数据就可以。
#这里不用再次fit是因为sc.fit_transform(training_set)已经确定了每列的归一化公式。由此可知test_set归一化数据,并不是把数据映射到 [ 0,1 ] ,只是用了和training_set一样的归一化公式。
test_set     = sc.transform(test_set) 

sklearn 库有六大模块,分别是分类、回归、聚类、降维、模型选择和预处理preprocessing。MinMaxScaler()函数在preprocessing模块,用来实现数据的归一化,即把数据映射到 [ 0,1 ] 。

设置测试集

# 设置测试集训练集
x_train = []
y_train = []

x_test = []
y_test = []

这里就是设置了几个对象留着给后面用

先写到这里,后面的下一篇介绍。

以上是关于学习深度学习代码各个步骤都是为了啥的主要内容,如果未能解决你的问题,请参考以下文章

学习深度学习代码各个步骤都是为了啥

学习深度学习代码各个步骤都是为了啥

学习深度学习代码各个步骤都是为了啥

学习深度学习代码各个步骤都是为了啥

机器学习 vs 深度学习到底有啥区别,为什么更多人选择机器学习

深度学习 之 DeepLearning4j 预测股市走向