我有以下张量 a ,我想以两种不同的方式使用tf.tile来获得不同的结果。
a.eval() = array([[ 1],
[ 2],
[ 3],
[10],
[20],
[30]], dtype=int32)
我知道我能做到:
a_rep = tf.tile(a, [1,2])
a_rep = tf.reshape(rep, (12, 1))
为了获得:
a_rep.eval() = array([[ 1],
[ 1],
[ 2],
[ 2],
[ 3],
[ 3],
[10],
[10],
[20],
[20],
[30],
[30]], dtype=int32)
我应该如何使用tf.tile来获得以下结果?我基本上想要具有特定大小的张量块重复而不是只有一个值。
a_rep.eval() = array([[ 1],
[ 2],
[ 3],
[ 1],
[ 2],
[3],
[10],
[20],
[30],
[10],
[20],
[30]], dtype=int32)
非常感谢你!
答案 0 :(得分:3)
类似的技巧,你平铺第二个维度,但在新的第三维度上堆叠“组”:
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {//esto es lo que hacereferencia al xml donde vamos a meter la info
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list,null,false);//aqui le asignamos el valor del view al viewHolder
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {// este metodo es el que se encarga de establecer la conexion entre el adaptador y la clase Viewholder ( a la cual le asignamos el xml)
holder.etiLugares.setText(listalugares.get(position).getLugares());// asi se asignan los textos
holder.Foto.setImageResource(listalugares.get(position).getFoto());//asi se asignan las fotos
if(position%3==0)
holder.Foto.setOnClickListener(this);
}
输出:
import tensorflow as tf
with tf.Session() as sess:
a = tf.constant([[ 1], [ 2], [ 3], [10], [20], [30]], dtype=tf.int32)
group_size = 3
repeats = 2
result = tf.reshape(tf.tile(tf.reshape(a, (-1, 1, group_size)), (1, repeats, 1)),
(-1, 1))
print(sess.run(result))
这假设数组中的元素数可以被size组整除。如果你想支持拥有最后一个“部分组”,你可以用完整的组完成上述操作,独立地平铺最后一位并连接。