如何在张量流中增加数组的多维度?

时间:2017-01-23 15:27:34

标签: python arrays multidimensional-array tensorflow concat

我有一个包含8列的txt文件,我为我的特征提取选择了1列,它给出了13个特征值,输出数组的形状将是[1x13]。 同样,我在一个文件夹中有5个txt文件,我想运行一个循环,以便返回的变量将有5x13数据。

def loadinfofromfile(directory,sd,channel):
    # subdir selection and read file names in it for particular crack type.
    subdir, filenames = loadfilenamesindirectory(directory,sd)
    for i in range(5):
        # join the directory sub directory and the filename
        loadfile = os.path.join(directory,subdir,filenames[i])
        # load the values of that paticular file into tensor
        fileinfo = tf.constant(np.loadtxt(loadfile),tf.float32)
        # select the particular column data ( choosen from crack type, channel no)
        fileinfo_trans = tf.transpose(fileinfo)
        fileinfo_back = tf.gather(fileinfo_trans,channel)
        # extracting features from selected column data gives [1x13]
        pool = features.pooldata(fileinfo_back)
        poolfinal = tf.concat_v2([tf.expand_dims(pool,0)],axis=0)
    return poolfinal

在上面的函数中,我能够[1x13]得到变量'pool',我期望变量poolfinal的大小为[5x13],但我把它作为[1x13]。 如何在垂直方向上连续? 我在循环中做了什么错误?

1 个答案:

答案 0 :(得分:0)

每个循环从sctratch创建pool和poolfinal。这就是为什么你只看到poolfinal中的一个数据的原因。 请尝试以下方法:

pools = []
for ...:
  pools.append(...)
poolfinal = tf.concat_v2(pools, axis=0)