15import torch.nn as nn\n\
17model = nn.Sequential(\n\
24criterion = nn.MSELoss()\n\
25optimizer = torch.optim.SGD(model.parameters(),lr=0.01)\n\
30for i in range(500):\n\
32 loss = criterion(y_pred,y)\n\
33 optimizer.zero_grad()\n\
38m = torch.jit.script(model)\n\
39torch.jit.save(m,'PyTorchModel.pt')\n";
42void TMVA_SOFIE_PyTorch(){
49 m.SaveSource(
"make_pytorch_model.py");
54 std::vector<size_t> inputTensorShapeSequential{2,32};
55 std::vector<std::vector<size_t>> inputShapesSequential{inputTensorShapeSequential};
58 SOFIE::RModel model = SOFIE::PyTorch::Parse(
"PyTorchModel.pt",inputShapesSequential);
79 std::cout<<
"Shape of tensor \"0weight\": ";
80 for(
auto& it:tensorShape){
83 std::cout<<
"\n\nData type of tensor \"0weight\": ";
85 std::cout<<SOFIE::ConvertTypeToString(tensorType);
R__EXTERN TSystem * gSystem
const ETensorType & GetTensorType(std::string name)
void PrintIntermediateTensors()
bool CheckIfTensorAlreadyExist(std::string tensor_name)
void OutputGenerated(std::string filename="", bool append=false)
void PrintInitializedTensors()
const std::vector< size_t > & GetTensorShape(std::string name)
void Generate(std::underlying_type_t< Options > options, int batchSize=-1, long pos=0, bool verbose=false)
void PrintRequiredInputTensors()
static void PyInitialize()
Initialize Python interpreter.
Class supporting a collection of lines with C++ code.
virtual Int_t Exec(const char *shellcmd)
Execute a command.
TString Python_Executable()
Function to find current Python executable used by ROOT If "Python3" is installed,...