# 1、张量排序

tensorflow是没有类似于python中sorted或者np.sort方法的，如果在流中使用这两个方法，是会报错的！那么我们如果想要在graph中实现对张量的排序，该如何做呢！我觉得可以使用top_k函数！

tf.nn.top_k

`tf.nn.top_k(input, k, name=None)`

```choose = tf.placeholder(tf.int64,[None,5])
sortresult = tf.nn.top_k(choose,5,sorted=True)
sortresultarr =  tf.nn.top_k(choose,5,sorted=True)[0]

with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
feed_dict = {
choose:[[5,4,3,0,1],[2,3,0,4,2],[2,3,5,4,2]]
}
print(sess.run(sortresult,feed_dict=feed_dict))
print(sess.run(sortresultarr,feed_dict = feed_dict))```

```TopKV2(values=array([[5, 4, 3, 1, 0],
[4, 3, 2, 2, 0],
[5, 4, 3, 2, 2]]), indices=array([[0, 1, 2, 4, 3],
[3, 1, 0, 4, 2],
[2, 3, 1, 0, 4]], dtype=int32))
[[5 4 3 1 0]
[4 3 2 2 0]
[5 4 3 2 2]]```

# 2、字符串拼接

`sortresultarr =  tf.as_string(tf.nn.top_k(choose,5,sorted=True)[0])`

```[[b'5' b'4' b'3' b'1' b'0']
[b'4' b'3' b'2' b'2' b'0']
[b'5' b'4' b'3' b'2' b'2']]```

```sortresultarr =  tf.cast(tf.nn.top_k(choose,5,sorted=True)[0],tf.string)
error:Cast int64 to string is not supported```

tf.string_join

```tf.string_join(
inputs,
separator='',
name=None
)```

```sortresultstr = tf.string_join(sortresultarr,separator=",")

#ERROR
TypeError: Expected list for 'inputs' argument to 'string_join' Op, not <tf.Tensor 'AsString:0' shape=(?, 5) dtype=string>.```

`sortresultstr = tf.string_join([sortresultarr[0],sortresultarr[1]],separator=",")`

`[b'5,4' b'4,3' b'3,2' b'1,2' b'0,0']`

tf.reduce_join

```reduce_join(
inputs,
axis=None,
keep_dims=False,
separator='',
name=None,
reduction_indices=None
)```

`sortresultstr = tf.reduce_join(sortresultarr,axis=1,keep_dims=True,separator=",")`

```[[b'5,4,3,1,0']
[b'4,3,2,2,0']
[b'5,4,3,2,2']]```

# 参考文献

1、https://www.w3cschool.cn/tensorflow_python/tensorflow_python-zku82hj1.html 2、https://www.w3cschool.cn/tensorflow_python/tensorflow_python-ukns2mo5.html 3、https://blog.csdn.net/wuguangbin1230/article/details/72820627

DQN三大改进(一)-Double DQN

DQN三大改进(二)-Prioritised replay

DQN三大改进(三)-Dueling Network

0 条评论

• ### 一步步解析Attention is All You Need！

本文将通过细节剖析以及代码相结合的方式，来一步步解析Attention is all you need这篇文章。

• ### Tensorflow基础入门十大操作总结

TensorFlow 是一个开源的、基于 Python 的机器学习框架，它由 Google 开发，提供了 Python，C/C++、Java、Go、R 等多种编...

• ### Tensorflow解决MNIST手写数字分类问题

官网：https://www.tensorflow.org/tutorials/layers

• ### Python+tensorflow计算整数阶乘的方法与局限性

本文代码主要演示tensorflow的基本用法。 import tensorflow as tf # 创建变量，保存计算结果 start = tf.Variab...

• ### CTR学习笔记&代码实现2-深度ctr模型 MLP->Wide&Deep

这一篇我们从基础的深度ctr模型谈起。我很喜欢Wide&Deep的框架感觉之后很多改进都可以纳入这个框架中。Wide负责样本中出现的频繁项挖掘，Deep负责样本...

• ### 代码+实战：TensorFlow Estimator of Deep CTR —— DeepFM/NFM/AFM/FNN/PNN

深度学习在 ctr 预估领域的应用越来越多，新的模型不断冒出。从 ctr 预估问题看看 f(x) 设计—DNN 篇（https://zhuanlan.zhihu...