blob: 0ccba95406352bada471340fbc2bf8eef6533c7d [file] [log] [blame]
testBlocks
graph(%a : Dynamic
%b : Dynamic
%c : Dynamic) {
%2 : int = prim::Constant[value=1]()
%3 : Dynamic = aten::add(%a, %b, %2)
%5 : Dynamic = prim::If(%c)
block0() {
%6 : int = prim::Constant[value=1]()
%7 : Dynamic = aten::add(%3, %3, %6)
-> (%7)
}
block1() {
%8 : int = prim::Constant[value=1]()
%9 : Dynamic = aten::add(%b, %3, %8)
%10 : int = prim::Constant[value=1]()
%11 : Dynamic = aten::add(%9, %3, %10)
-> (%11)
}
%12 : int = prim::Constant[value=1]()
%13 : Dynamic = aten::add(%5, %3, %12)
return (%13);
}
graph(%a : Dynamic
%b : Dynamic
%c : Dynamic) {
%2 : int = prim::Constant[value=1]()
%3 : Dynamic = aten::add(%a, %b, %2)
%5 : Dynamic = prim::If(%c)
block0() {
%8 : int = prim::Constant[value=1]()
%9 : Dynamic = aten::add(%b, %3, %8)
%10 : int = prim::Constant[value=1]()
%11 : Dynamic = aten::add(%9, %3, %10)
-> (%11)
}
%12 : int = prim::Constant[value=1]()
%13 : Dynamic = aten::add(%5, %3, %12)
return (%13);
}
graph(%a : Dynamic
%b : Dynamic
%c : Dynamic) {
%3 : int = prim::Constant[value=1]()
%4 : Dynamic = aten::add(%a, %b, %3)
%5 : Dynamic = prim::If(%c)
block0() {
%6 : int = prim::Constant[value=1]()
%7 : Dynamic = aten::add(%b, %4, %6)
%8 : int = prim::Constant[value=1]()
%9 : Dynamic = aten::add(%7, %4, %8)
-> (%9)
}
%10 : int = prim::Constant[value=1]()
%11 : Dynamic = aten::add(%5, %4, %10)
return (%11);
}
testCreateAutodiffSubgraphs
graph(%0 : Dynamic
%1 : Dynamic
%2 : Dynamic
%3 : Dynamic
%4 : Dynamic) {
%7 : int = prim::Constant[value=1]()
%19 : int = prim::Constant[value=1]()
%23 : Dynamic, %24 : Dynamic = prim::DifferentiableGraph_0(%0, %3, %1, %4, %2)
return (%24, %23);
}
with prim::DifferentiableGraph_0 = graph(%1 : Dynamic
%2 : Dynamic
%4 : Dynamic
%5 : Dynamic
%17 : Dynamic) {
%0 : Dynamic = aten::mm(%1, %2)
%3 : Dynamic = aten::mm(%4, %5)
%7 : int = prim::Constant[value=1]()
%6 : Dynamic = aten::add(%0, %3, %7)
%8 : Dynamic, %9 : Dynamic, %10 : Dynamic, %11 : Dynamic = prim::ConstantChunk[chunks=4, dim=1](%6)
%12 : Dynamic = aten::sigmoid(%8)
%13 : Dynamic = aten::sigmoid(%11)
%14 : Dynamic = aten::tanh(%10)
%15 : Dynamic = aten::sigmoid(%9)
%16 : Dynamic = aten::mul(%15, %17)
%18 : Dynamic = aten::mul(%12, %14)
%20 : int = prim::Constant[value=1]()
%19 : Dynamic = aten::add(%16, %18, %20)
%21 : Dynamic = aten::tanh(%19)
%22 : Dynamic = aten::mul(%13, %21)
return (%19, %22);
}
testDifferentiate
graph(%0 : Float(2, 3, 4)
%1 : Float(2, 3, 4)) {
%2 : Float(2, 3, 4) = aten::mul(%0, %1)
%3 : Float(2, 3, 4) = aten::mul(%2, %0)
%4 : int = prim::Constant[value=1]()
%5 : Float(2, 3, 4) = aten::add(%3, %1, %4)
return (%5, %2);
}
graph(%0 : Float(2, 3, 4)
%1 : Float(2, 3, 4)
%2 : Float(2, 3, 4)
%3 : Float(2, 3, 4)
%4 : Float(2, 3, 4)) {
%5 : int = prim::Constant[value=1]()
%6 : Float(2, 3, 4), %7 : Float(2, 3, 4) = prim::GradOf[name="aten::add"](%0)
block0() {
%8 : Float(2, 3, 4) = aten::mul(%0, %5)
-> (%0, %8)
}
%9 : Float(2, 3, 4), %10 : Float(2, 3, 4) = prim::GradOf[name="aten::mul"](%6)
block0() {
%11 : Float(2, 3, 4) = aten::mul(%6, %2)
%12 : Float(2, 3, 4) = aten::mul(%6, %4)
-> (%11, %12)
}
%13 : Dynamic = prim::AutogradAdd(%1, %9)
%14 : Float(2, 3, 4), %15 : Float(2, 3, 4) = prim::GradOf[name="aten::mul"](%13)
block0() {
%16 : Float(2, 3, 4) = aten::mul(%13, %3)
%17 : Float(2, 3, 4) = aten::mul(%13, %2)
-> (%16, %17)
}
%18 : Dynamic = prim::AutogradAdd(%10, %14)
%19 : Dynamic = prim::AutogradAdd(%7, %15)
return (%18, %19);
}
testDifferentiateWithRequiresGrad
graph(%0 : Float(*)
%1 : Float(*)) {
%2 : Float(*) = aten::mul(%1, %1)
%3 : int = prim::Constant[value=1]()
%4 : Float(*) = aten::add(%2, %1, %3)
%5 : int = prim::Constant[value=1]()
%6 : Float(*) = aten::add(%4, %0, %5)
%7 : Float(*) = aten::mul(%6, %0)
%8 : int = prim::Constant[value=1]()
%9 : Float(*) = aten::add(%7, %1, %8)
return (%4, %9, %6);
}
graph(%0 : Float(*)
%1 : Float(*)
%2 : Float(*)
%3 : Float(*)) {
%4 : int = prim::Constant[value=1]()
%5 : Float(*), %6 : Dynamic = prim::GradOf[name="aten::add"](%0)
block0() {
%7 : Dynamic = aten::mul(%0, %4)
-> (%0, %7)
}
%8 : Dynamic, %9 : Dynamic = prim::GradOf[name="aten::mul"](%5)
block0() {
%10 : Dynamic = aten::mul(%5, %2)
%11 : Dynamic = aten::mul(%5, %3)
-> (%10, %11)
}
%12 : Dynamic = prim::AutogradAdd(%1, %8)
%13 : Dynamic, %14 : Dynamic = prim::GradOf[name="aten::add"](%12)
block0() {
%15 : Dynamic = aten::mul(%12, %4)
-> (%12, %15)
}
%16 : Dynamic = prim::AutogradAdd(%9, %14)
return (%16);
}