-
大小: 2MB文件類型: .zip金幣: 2下載: 0 次發布日期: 2023-11-09
- 語言: 其他
- 標簽: tensorflow??RNN??LSTM??預測??
資源簡介
深度學習作業練習(包括報告和代碼)
一、循環神經網絡用于預測任務(提交實現步驟描述以及下面要求提交的結果)
1、構建標準循環神經網絡進行預測任務
(1) 數據生成:
使用函數
一、循環神經網絡用于預測任務(提交實現步驟描述以及下面要求提交的結果)
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.me
?????文件???????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.me
?????文件???????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.me
............此處省略16個文件信息
評論
共有 條評論