浅谈tensorflow 中tf.concat()的使用
concat()是将tensor沿着指定维度连接起来。其中tensorflow1.3版中是这样定义的:
concat(values,axis,name='concat')
一、对于2维来说,0表示行,1表示列
t1 = [[1, 2, 3], [4, 5, 6]] t2 = [[7, 8, 9], [10, 11, 12]] with tf.Session() as sess: print(sess.run(tf.concat([t1, t2], 0) ))
结果为:[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
t1 = [[1, 2, 3], [4, 5, 6]] t2 = [[7, 8, 9], [10, 11, 12]] with tf.Session() as sess: print(sess.run(tf.concat([t1, t2], 1) ))
结果为:[[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]
二、 对于3维来说 0表示纵向,1表示行,2表示列
t1 = [[[1, 1, 1],[2, 2, 2]],[[3, 3, 3],[4, 4, 4]]] t2 = [[[5, 5, 5],[6, 6, 6]],[[7, 7, 7],[8, 8, 8]]] with tf.Session() as sess: print(sess.run(tf.concat([t1, t2], 0) ))
结果:[[[1 1 1],[2 2 2]] , [[3 3 3],[4 4 4]] , [[5 5 5],[6 6 6]] , [[7 7 7],[8 8 8]]]
Tensor("concat_30:0", shape=(4, 2, 3), dtype=int32)
axis=1的结果如下:
Tensor("concat_31:0", shape=(2, 4, 3), dtype=int32)
[[[1 1 1], [2 2 2],[5 5 5],[6 6 6]], [[3 3 3], [4 4 4],[7 7 7], [8 8 8]]]
axis=2的结果如下:
Tensor("concat_32:0", shape=(2, 2, 6), dtype=int32)
[[[1 1 1 5 5 5],[2 2 2 6 6 6]], [[3 3 3 7 7 7], [4 4 4 8 8 8]]]
以上这篇浅谈tensorflow 中tf.concat()的使用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Tensorflow 实现修改张量特定元素的值方法
最近在做一个摘要生成的项目,过程中遇到了很多小问题,从网上查阅了许多别人解决不同问题的方法,自己也在旁边开了个jupyter notebook搞些小实验,这里总结一下遇到的一些问题. Tensorflow用起来不是很顺手,很大原因在于tensor这个玩意儿,并不像数组或者列表那么的直观,直接print的话只能看到 Tensor(-) 这样的提示.比如下面这个问题,我们想要修改张量特定位置上的某个数值,操作起来就相对麻烦一些.和array一样,张量也是可以分段读取的,比如 tensor[1:10]
-
Tensorflow中tf.ConfigProto()的用法详解
参考Tensorflow Machine Leanrning Cookbook tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算 具体代码如下: import tensorflow as tf session_config = tf.ConfigProto( log_device_placement=True, inter_op_parallelism_threads=0, intra_op_parallelism_threads=0,
-
Tensorflow中使用tfrecord方式读取数据的方法
前言 本博客默认读者对神经网络与Tensorflow有一定了解,对其中的一些术语不再做具体解释.并且本博客主要以图片数据为例进行介绍,如有错误,敬请斧正. 使用Tensorflow训练神经网络时,我们可以用多种方式来读取自己的数据.如果数据集比较小,而且内存足够大,可以选择直接将所有数据读进内存,然后每次取一个batch的数据出来.如果数据较多,可以每次直接从硬盘中进行读取,不过这种方式的读取效率就比较低了.此篇博客就主要讲一下Tensorflow官方推荐的一种较为高效的数据读取方式--tfre
-
Tensorflow进行多维矩阵的拆分与拼接实例
最近在使用tensorflow进行网络训练的时候,需要提取出别人训练好的卷积核的部分层的数据.由于tensorflow中的tensor和python中的list不同,无法直接使用加法进行拼接,后来发现一个函数可以完成tensor的拼接. 函数形式如下: tf.concat(concat_dim,values,name='concat') 其中,第一个参数表示需要拼接的多维tensor,并且可以将多个tensor同事拼接,第二个表示按照哪一个维度拼接(从数字0开始). 例子:创建一个三维的tens
-
浅谈tensorflow 中tf.concat()的使用
concat()是将tensor沿着指定维度连接起来.其中tensorflow1.3版中是这样定义的: concat(values,axis,name='concat') 一.对于2维来说,0表示行,1表示列 t1 = [[1, 2, 3], [4, 5, 6]] t2 = [[7, 8, 9], [10, 11, 12]] with tf.Session() as sess: print(sess.run(tf.concat([t1, t2], 0) )) 结果为:[[1, 2, 3], [4
-
浅谈tensorflow中几个随机函数的用法
如下所示: tf.constant(value, dtype=None, shape=None) 创建一个常量tensor,按照给出value来赋值,可以用shape来指定其形状.value可以是一个数,也可以是一个list. 如果是一个数,那么这个常亮中所有值的按该数来赋值. tf.random_normal(shape,mean=0.0,stddev=1.0,dtype=tf.float32) tf.truncated_normal(shape, mean=0.0, stddev=1.0,
-
浅谈tensorflow中张量的提取值和赋值
tf.gather和gather_nd从params中收集数值,tf.scatter_nd 和 tf.scatter_nd_update用updates更新某一张量.严格上说,tf.gather_nd和tf.scatter_nd_update互为逆操作. 已知数值的位置,从张量中提取数值:tf.gather, tf.gather_nd tf.gather indices每个元素(标量)是params某个axis的索引,tf.gather_nd 中indices最后一个阶对应于索引值. tf.ga
-
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
三维的读取图片(w, h, c): import tensorflow as tf import glob import os def _parse_function(filename): # print(filename) image_string = tf.read_file(filename) image_decoded = tf.image.decode_image(image_string) # (375, 500, 3) image_resized = tf.image.resize
-
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
batch很好理解,就是batch size.注意在一个epoch中最后一个batch大小可能小于等于batch size dataset.repeat就是俗称epoch,但在tf中与dataset.shuffle的使用顺序可能会导致个epoch的混合 dataset.shuffle就是说维持一个buffer size 大小的 shuffle buffer,图中所需的每个样本从shuffle buffer中获取,取得一个样本后,就从源数据集中加入一个样本到shuffle buffer中. imp
-
浅谈TensorFlow中读取图像数据的三种方式
本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片测试,有的时候,我们并不需要对很多图像做测试,可能就是几张甚至一张.这种情况下没有必要用队列机制. import tensorflow as tf import matplotlib.pyplot as plt def read_image(file_name): img = tf.read_fil
-
浅谈tensorflow 中的图片读取和裁剪方式
一 方式1: skimage from skimage import data, io, transform, color import matplotlib.pyplot as plt # io.imread 读出的图片格式是uint8,value是numpy array 类型. image = data.coffee() image = io.imread(dir) plt.imshow(image) plt.show() io.save('1.jpg',image) #保存图像 image
-
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
有一段时间没用tensorflow了,现在跑实验还是存在一些坑了,主要是关于张量计算的问题.tensorflow升级1.0版本后与以前的版本并不兼容,可能出现各种奇奇怪怪的问题. 1 tf.concat函数 tensorflow1.0以前函数用法:tf.concat(concat_dim, values, name='concat'),第一个参数为连接的维度,可以将几个向量按指定维度连接起来. 如: t1 = [[1, 2, 3], [4, 5, 6]] t2 = [[7, 8, 9], [10
-
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
概述 在使用keras中的keras.backend.batch_dot和tf.matmul实现功能其实是一样的智能矩阵乘法,比如A,B,C,D,E,F,G,H,I,J,K,L都是二维矩阵,中间点表示矩阵乘法,AG 表示矩阵A 和G 矩阵乘法(A 的列维度等于G 行维度),WX=Z import keras.backend as K import tensorflow as tf import numpy as np w = K.variable(np.random.randint(10,siz
-
浅谈mysql中concat函数,mysql在字段前/后增加字符串
MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串. 一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQ
随机推荐
- ASP.NET中母版页和shtml实例入门
- Linux Shell中curl和wget使用代理IP的方法教程
- Webpack 实现 Node.js 代码热替换
- Centos系统中彻底删除Mysql数据库步骤
- bsmain.exe 瑞星仇恨者查杀方法
- java 中同步、异步、阻塞和非阻塞区别详解
- php设计模式 Interpreter(解释器模式)
- 获得.net控件的windows句柄的方法
- 数据库的用户帐号管理基础知识
- Javascript下的urlencode编码解码方法附decodeURIComponent
- js 判断数据类型的几种方法
- jQuery随机密码生成的方法
- C++实现简单的图书管理系统
- javascript offsetX与layerX区别
- 如何配置Apache服务器中的虚拟机
- 浅谈jquery点击label触发2次的问题
- jQuery中RadioButtonList的功能及用法实例介绍
- JavaScript设置IFrame高度自适应(兼容各主流浏览器)
- JavaScript实现从数组中选出和等于固定值的n个数
- C语言数据结构 链表与归并排序实例详解