我想知道Tensorflow中stride slice函数的复杂性是什么?显然,它不像卷积2D那样计算量大,但是当然也不免费。我什至不确定该操作的复杂性是否有意义,因为没有执行加法或乘法运算。
具体来说,假设我有一个10x3x3x10张量foo
,并且我想执行bar=foo[3:5,:,:,4:5]
。您将如何评估操作的复杂性(在时间和空间上)?
答案 0 :(得分:1)
您可以使用TF_Strided_Slice操作和Conv2D操作,然后在 Profiling
<中使用 Keras Callback
评估这些操作的复杂性/ strong>。
下面提到了相应的代码:
log_dir="logs/profile/" + datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1, profile_batch = 3)
model.fit(train_data,
steps_per_epoch=20,
epochs=5,
callbacks=[tensorboard_callback])