tensorflow 用到过的函数记录

tensorflow 用到过的函数记录

tf.multinomial 从多项式分布中抽取样本。

multinomial(
    logits,
    num_samples,
    seed=None,
    name=None
)

args:

  • logits:形状为 [batch_size, num_classes] 的二维张量;每个切片:[i, :]
    表示所有类的非标准化对数概率。
  • num_samples:0维张量。为每行切片绘制的独立样本数。
  • seed:Python整数。用于为分发创建一个随机种子。 name:操作的名称(可选)。

返回:

  • 返回绘制样品的形状 [batch_size, num_samples]。

tf.einsum

  • einsum( equation, *inputs)
  • 一般来说, 方程是从较熟悉的元素方程得到:
  • 删除变量名称、括号和逗号;
  • 用 “*” 替换 “,”;
  • 删除总和标志;
  • 将输出移到右侧,并将 “=” 替换为 “->>”。

许多常见操作可以用这种方式来表示。例如:

# Matrix multiplication
>>> einsum('ij,jk->ik', m0, m1)  # output[i,k] = sum_j m0[i,j] * m1[j, k]
# Dot product
>>> einsum('i,i->', u, v)  # output = sum_i u[i]*v[i]
# Outer product
>>> einsum('i,j->ij', u, v)  # output[i,j] = u[i]*v[j]
# Transpose
>>> einsum('ij->ji', m)  # output[j,i] = m[i,j]
# Batch matrix multiplication
>>> einsum('aij,ajk->aik', s, t)  # out[a,i,k] = sum_j s[a,i,j] * t[a, j, k]

tf.assign()

  • tf.assign()把value的值赋给ref,ref的值必须是Variable
tf.assign(
    ref,
    value,
    validate_shape=None,
    use_locking=None,
    name=None
)

使用案例:

import tensorflow as tf
x = tf.Variable(1)
x = tf.assign(x, 2)
sess = tf.Session()
print(sess.run(x))

tf.device()

  • 在tensorflow中,我们可以使用 tf.device() 指定模型运行的具体设备,可以指定运行在GPU还是CUP上,以及哪块GPU上。

设置使用GPU

  • 使用 tf.device(’/gpu:1’) 指定Session在第二块GPU上运行:
import tensorflow as tf 
with tf.device('/gpu:1')
   v1 = tf.constant([1.0, 2.0, 3.0], shape=[3], name='v1')    
   v2 = tf.constant([1.0, 2.0, 3.0], shape=[3], name='v2')
   sumV12 = v1 + v2     
   with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:        
   print sess.run(sumV12)

设置使用cpu

  • tensorflow中不同的GPU使用/gpu:0和/gpu:1区分,而CPU不区分设备号,统一使用 /cpu:0
import tensorflow as tf 
with tf.device('/cpu:0'):
   v1 = tf.constant([1.0, 2.0, 3.0], shape=[3], name='v1')    
   v2 = tf.constant([1.0, 2.0, 3.0], shape=[3], name='v2')
   sumV12 = v1 + v2     
   with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:        
   print sess.run(sumV12)

.int_shape()

  
>>> from keras import backend as K
>>> input = K.placeholder(shape=(2, 4, 5))
>>> K.int_shape(input)
       (2, 4, 5)
>>> val = np.array([[1, 2], [3, 4]])
>>> kvar = K.variable(value=val)
>>> K.int_shape(kvar)
       (2, 2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值