tensorflow的1維卷積


前面找到了tensorflow的一維卷積、池化函數,但是官方API太簡單,網上的例子也不多。

由於沒時間研究源碼,只能另尋他法了。

后面細細想來,tensorflow的二維卷積、池化函數,好像也能進行一維卷積、池化;也就是,利用對圖像矩陣進行卷積、池化的函數,把第一個維度設置成1。

這樣做確實可行,最簡單的代碼示例如下:

import tensorflow as tf
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

sess = tf.InteractiveSession()

def conv2d(x, W):
    return tf.nn.conv2d(x, W, strides=[1,1,1,1], padding='SAME')
def max_pool_1x2(x): return tf.nn.avg_pool(x, ksize=[1,1,2,1], strides=[1,1,2,1], padding='SAME')
'''
ksize = [x, pool_height, pool_width, x]
strides = [x, pool_height, pool_width, x]
''' x
= tf.Variable([[1,2,3,4]], dtype=tf.float32) x = tf.reshape(x, [1,1,4,1]) #這一步必不可少,否則會報錯說維度不一致;
'''
[batch, in_height, in_width, in_channels] = [1,1,4,1]
''' W_conv1
= tf.Variable([1,2,1],dtype=tf.float32) W_conv1 = tf.reshape(W_conv1, [1,3,1,1]) # 這一步同樣必不可少
'''
[filter_height, filter_width, in_channels, out_channels]
''' h_conv1
= conv2d(x, W_conv1) h_pool1 = max_pool_1x2(h_conv1) tf.global_variables_initializer().run() sess.run(h_pool1) # 結果array([6,11.5])

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM