我想知道Tensorflow中stride slice函数的复杂度是多少。显然,它不像卷积2D那样计算量大,但是它当然也不免费。我什至不确定该操作的复杂性是否有意义,因为没有执行加法或乘法运算。具体来说,假设我有一个10x3x3x10张量foo
,我想执行bar=foo[3:5,:,:,4:5]
。您将如何评估操作的复杂性(在空间和时间方面)?
您可以使用TF_Strided_Slice操作和Conv2D操作,然后使用Profiling
中的Keras Callback
评估那些操作的复杂性。
下面提到相应的代码:
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])