keras 的 example 文件 conv_lstm.py 解析
生活随笔
收集整理的這篇文章主要介紹了
keras 的 example 文件 conv_lstm.py 解析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
該文件演示了ConvLSTM2D和Conv3D的使用,
他的網絡結構打印出來為
____________________________________________________________________________________________________
Layer (type) Output Shape Param #
====================================================================================================
conv_lst_m2d_1 (ConvLSTM2D) (None, None, 40, 40, 40) 59200
____________________________________________________________________________________________________
batch_normalization_1 (BatchNormalization) (None, None, 40, 40, 40) 160
____________________________________________________________________________________________________
conv_lst_m2d_2 (ConvLSTM2D) (None, None, 40, 40, 40) 115360
____________________________________________________________________________________________________
batch_normalization_2 (BatchNormalization) (None, None, 40, 40, 40) 160
____________________________________________________________________________________________________
conv_lst_m2d_3 (ConvLSTM2D) (None, None, 40, 40, 40) 115360
____________________________________________________________________________________________________
batch_normalization_3 (BatchNormalization) (None, None, 40, 40, 40) 160
____________________________________________________________________________________________________
conv_lst_m2d_4 (ConvLSTM2D) (None, None, 40, 40, 40) 115360
____________________________________________________________________________________________________
batch_normalization_4 (BatchNormalization) (None, None, 40, 40, 40) 160
____________________________________________________________________________________________________
conv3d_1 (Conv3D) (None, None, 40, 40, 1) 1081
====================================================================================================
Total params: 407,001
Trainable params: 406,681
Non-trainable params: 320
____________________________________________________________________________________________________
其輸入和輸出分別為noisy_movies和shifted_movies,也就是兩段電影,影片內容是用代碼生成的移動方框,如下
只要在代碼中添加如下兩行,即可保存一段影片:
import imageio
imageio.mimsave("my.gif", shifted_movies[3], 'GIF', duration=0.2)
而noisy_movies和shifted_movies的shape均為(1200, 15, 40, 40, 1),
也就是包含1200個影片,每個影片有15幀,分辨率為40*40,
noisy_movies和shifted_movies影片內容有什么關系呢?
其實shifted_movies是noisy_movies的每一幀的下一幀,只不過有一點點噪音而已
如果把代碼中的
if np.random.randint(0, 2):noise_f = (-1)**np.random.randint(0, 2)noisy_movies[i, t,x_shift - w - 1: x_shift + w + 1,y_shift - w - 1: y_shift + w + 1,0] += noise_f * 0.1
這段注釋掉,然后在下面添加判斷
for k in range(100):print(k)for i in range(1, 14):print((shifted_movies[k][i - 1].astype(np.uint8)==noisy_movies[k][i].astype(np.uint8)).all())# cv2.imshow("noisy", noisy_movies[k][i])# cv2.imshow("shift", shifted_movies[k][i - 1])# cv2.waitKey(1000)
我們就可以看到,這個判斷永遠為True,所以該代碼邏輯就是,
給一段影片,預測其下一幀,可能還帶一點影片清晰度的修復(消除噪音)
?
——————————————————————
總目錄
keras的example文件解析
?
總結
以上是生活随笔為你收集整理的keras 的 example 文件 conv_lstm.py 解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自定义apt升级脚本
- 下一篇: keras 的 example 文件 i