Вы можете попробовать:
import tensorflow as tf
L_tf = tf.placeholder(shape=(None,3),dtype=tf.float64)
I_tf = tf.placeholder(shape=(None,),dtype=tf.float64)
a = tf.sequence_mask(I_tf,L_tf.shape[1],dtype=tf.float64)
# [[1. 1. 0.]
# [1. 0. 0.]]
b = tf.sequence_mask(tf.ceil(I_tf),L_tf.shape[1],dtype=tf.float64)
# [[1. 1. 1.]
# [1. 1. 0.]]
c = tf.mod(tf.stack([I_tf]*L_tf.shape[1],axis=1),1)
# [[0.5 0.5 0.5]
# [0.3 0.3 0.3]]
prod = tf.where(tf.not_equal(a,b),c,tf.zeros_like(a)) + a
# [[1. 1. 0.5]
# [1. 0.3 0. ]]
result = tf.reduce_sum(L_tf*prod,axis=1)
L = [[1,2,3],[2,5,8]]
I = [2.5, 1.3]
with tf.Session() as sess:
print(sess.run(result,feed_dict={L_tf:L,I_tf:I}))
[4.5 3.5]
Не то, чтобы я знаю - но одна вещь, которую Вы могли бы хотеть сделать, избавляются от директивы использования для System.Linq
. В той точке дополнительный метод не будет доступен, и я полагаю, что это не будет предлагаться Intellisense.
Очевидно, это бесполезно, если Вы хотите использовать LINQ от одного бита кода в классе, но не в другом - а для классов, которые не используют LINQ вообще, он мог бы помочь Вам.
В теории Вы могли сделать это с соответствующим атрибутом декоратора*, но гуглящий это кажется, что это прослушивается с фиксацией, ждущей пакета обновления, по-видимому.
* [Система. ComponentModel. EditorBrowsable (Система. ComponentModel. EditorBrowsableState. Никогда)]
Возможно, Вы могли попытаться использовать что-то как resharper, который фильтрует список методов, как Вы вводите. Я нахожу, что это помогает мне быстро добраться до того, в чем я нуждаюсь. И это сделает так, не скрывая полезные методы расширения