Draft PR : #2023
Format of BCQ operations is upgraded as follow.
Transpose or changing axis of Gather is needed oftenOriginal codes for handling original BCQ format will be kept for a while.
However, those codes will be deprecated eventually in the near future.
In conclusion, FuseNewBCQPass will be introduced and it will substitute old FuseBCQPass in the future.
_(20200617)UPDATE : Old BCQ will be substituted by new BCQ immediately_
CircleBCQFullyConnected #2340CircleBCQGather #2340circledumpluci/lang #2446logex in luci #2349import in luci #2353export in luci #2447ShapeInference in luci/Service #2452FuseBCQPass in luci #2487 #2646AFAIK, We don't need to keep old BCQ version, so I will apply this change soon.
Huge problem occurred.... if values of constant nodes are same, they are removed.........
When const1, const2, const3 have all same values, they are removed to one constant node in TFv2 converter as follow.
[before converting in TFv2]
const1 --- output1
const2 --- output2
const3 --- output3
[after converting in TFv2]
const1 --- output1
const1 --- output2 (const2 is removed)
const1 --- output3 (const3 is removed)
When we use TFv1 converter, above constant nodes are not removed as follow.
[before converting in TFv1]
const1 --- output1
const2 --- output2
const3 --- output3
[after converting in TFv1]
const1 --- Reshape(with original shape) --- output1
const2 --- Reshape(with original shape) --- output2
const3 --- Reshape(with original shape) --- output3
I will find another solution to handle it because there will be some cases that we should use TFv2 converter.
Initial PRs are all merged and test material with real model is uploaded at internal repository.
However, we should validate by end-to-end including runtime and runtime is working hard.
Therefore, there can be some changes according to the result of validation.
Related works are all finished! close this PR :)