资源简介

深度学习作业练习(包括报告和代码)
一、循环神经网络用于预测任务(提交实现步骤描述以及下面要求提交的结果)
1、构建标准循环神经网络进行预测任务
(1) 数据生成:
使用函数

资源截图

代码片段和文件信息

#!/usr/bin/python
# -*- coding: utf-8 -*

#标准RNN进行预测
import  tensorflow  as  tf
import matplotlib.pyplot as plt
import matplotlib
import  numpy  as np
import random

time_steps = 7 # 步数

#生成数据
tx=np.linspace(1600600)
ty=np.sin(0.06*tx)+np.array([ random.uniform(-0.10.1) for i in range(600)])
#可视化
matplotlib.rcParams[‘font.sans-serif‘]=[‘SimHei‘]   # 用黑体显示中文
#plt.plot(tx ty‘ro‘)
#plt.title(“样本“)
#plt.show()

#切割数据,X:连续的6个数字为一组 Y:对应X数字后紧接着的下一位
X=[]
Y=[]
for i in range(len(ty) - time_steps ):
    X.append(ty[i : i+time_steps])#前六个数据
    Y.append(ty[i+time_steps])#紧接着的数据

train_size=420
# 训练数据
train_x=np.array(X[0:train_size] dtype=np.float32)
train_y=np.array(Y[0:train_size] dtype=np.float32)
# 测试数据
test_x=np.array(X[train_size:] dtype=np.float32)
test_y=np.array(Y[train_size:] dtype=np.float32)


hidden_size = 32 #隐藏层节点数
input_x = tf.placeholder(tf.float32 [None time_steps 1] name=‘input_x‘)# 输入占位符
input_y = tf.placeholder(tf.float32 [None 1] name=‘input_y‘)# 输出占位符
cell = tf.contrib.rnn.MultiRNNCell([tf.contrib.rnn.BasicRNNCell(hidden_size)])# 有32个隐含层的细胞


#cell = tf.contrib.rnn.MultiRNNCell([tf.contrib.rnn.BasicLSTMCell(hidden_sizeforget_bias=1.0)])
# 在原有的cell上的输入层中加入dropout层
# input_keep_prob 为dropout的比率
#cell = tf.nn.rnn_cell.DropoutWrapper(cellinput_keep_prob=0.4)

output _ = tf.nn.dynamic_rnn(cell input_xdtype=tf.float32)
output = output[:-1]

# 输出连上一个全连接层
w = tf.Variable(tf.truncated_normal([321 ])name=‘weight‘)# 初始化w
b = tf.Variable( tf.zeros ( [ 1 ] )name=‘bias‘ )# 初始化b
prediction = tf.matmul(output w)+b
#损失
cost = tf.losses.mean_squared_error(input_y prediction)
# 优化器,最小化损失函数
optimizer = tf.train.AdamOptimizer().minimize(cost)
#optimizer = tf.train.MomentumOptimizer(0.010.5).minimize(cost)
#optimizer = tf.train.GradientDescentOptimizer(0.01).minimize(cost)

epochs = 500 # 迭代500次,每次都使用集合中的全部样本
train_loss=[]
test_loss=[]
predicts=[]

session = tf.Session()
with tf.Session() as sess:
    tf.global_variables_initializer().run() 
    for e in range(epochs):
        train_cost_pre_epoch_ = sess.run([costoptimizer] feed_dict={ input_x:train_x[::None] input_y:train_y[:None]})
        train_loss.append(train_cost_pre_epoch)
    # test_cost:最终测试误差
    # prediction:预测值
    predicttest_cost =sess.run([predictioncost]  feed_dict={ input_x:test_x[::None] input_y:test_y[:None]})
    print(‘最终测试误差 =  ‘+str(test_cost))
   
ax=[i for i in range(epochs)]
plt.title(‘训练误差随迭代次数的变化图‘)
plt.plot(ax train_loss‘b‘)
plt.show()

ax=np.linspace(1 173 173)
plt.title(“测试集的预测值和真实值的对比图“)
plt.plot(ax test_y‘r‘label=‘真实值‘)
plt.plot(ax predict‘b‘label=‘预测值‘)
plt.legend()
plt.show()







 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-01-14 10:15  计科二_201730614059_刘婷榕_作业三\
     目录           0  2020-01-14 10:15  计科二_201730614059_刘婷榕_作业三\exp3_1\
     目录           0  2020-01-14 10:15  计科二_201730614059_刘婷榕_作业三\exp3_1\.vs\
     目录           0  2020-01-14 10:15  计科二_201730614059_刘婷榕_作业三\exp3_1\.vs\exp3_1\
     目录           0  2020-01-14 10:15  计科二_201730614059_刘婷榕_作业三\exp3_1\.vs\exp3_1\v15\
     文件       36352  2020-01-14 09:58  计科二_201730614059_刘婷榕_作业三\exp3_1\.vs\exp3_1\v15\.suo
     文件      253952  2019-10-27 00:13  计科二_201730614059_刘婷榕_作业三\exp3_1\.vs\exp3_1\v15\Browse.VC.db
     目录           0  2020-01-14 10:15  计科二_201730614059_刘婷榕_作业三\exp3_1\.vs\exp3_1\v15\ipch\
     目录           0  2019-10-26 22:53  计科二_201730614059_刘婷榕_作业三\exp3_1\.vs\exp3_1\v15\ipch\AutoPCH\
     文件          37  2019-10-27 23:41  计科二_201730614059_刘婷榕_作业三\exp3_1\.vs\ProjectSettings.json
     文件       77824  2019-10-27 23:41  计科二_201730614059_刘婷榕_作业三\exp3_1\.vs\slnx.sqlite
     文件         137  2019-10-27 23:41  计科二_201730614059_刘婷榕_作业三\exp3_1\.vs\VSWorkspaceState.json
     目录           0  2020-01-14 10:15  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\
     文件         952  2019-10-25 08:02  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1.sln
     文件        3168  2019-10-27 21:02  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\exp3_1.py
     文件        1520  2019-10-25 08:02  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\exp3_1.pyproj
     目录           0  2020-01-14 10:15  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\
     目录           0  2020-01-14 10:15  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\
     文件         226  2019-10-26 18:48  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\checkpoint
     文件     1257461  2019-10-26 18:48  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\events.out.tfevents.1572086858.DESKTOP-OTTLDKH
     文件     1257539  2019-10-26 18:48  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\events.out.tfevents.1572086898.DESKTOP-OTTLDKH
     文件      636959  2019-10-26 18:48  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\graph.pbtxt
     文件       98180  2019-10-26 18:47  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\model.ckpt-1.data-00000-of-00001
     文件         732  2019-10-26 18:47  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\model.ckpt-1.index
     文件      348500  2019-10-26 18:47  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\model.ckpt-1.meta
     文件       98180  2019-10-26 18:47  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\model.ckpt-10000.data-00000-of-00001
     文件         732  2019-10-26 18:47  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\model.ckpt-10000.index
     文件      348500  2019-10-26 18:48  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\model.ckpt-10000.meta
     文件       98180  2019-10-26 18:48  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\model.ckpt-10001.data-00000-of-00001
     文件         732  2019-10-26 18:48  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\model.ckpt-10001.index
     文件      348500  2019-10-26 18:48  计科二_201730614059_刘婷榕_作业三\exp3_1\exp3_1\Models\model_2\model.ckpt-10001.meta
............此处省略16个文件信息

评论

共有 条评论