Revert recent changes made to ConstantOp that broke it.
Signed-off-by: Sergei Barannikov <s.barannikov@samsung.com>
class ConstantOp : public Operation {
public:
- ConstantOp(const std::shared_ptr<mir::TensorVariant>& value)
- : Operation(Type::constant, {}), _value(value) {
- setOutputShape(0, _value->getShape());
+ ConstantOp(const TensorVariant& value) : Operation(Type::constant, {}), _value(value) {
+ setOutputShape(0, _value.getShape());
}
- const std::shared_ptr<mir::TensorVariant>& getValue() const { return _value; }
+ const TensorVariant& getValue() const { return _value; }
private:
- const std::shared_ptr<mir::TensorVariant>& _value;
+ TensorVariant _value;
};
} // namespace ops
CaffeOpCreator::convertEmbed(const caffe::LayerParameter& layer,
const std::vector<mir::IODescriptor>& inputs) {
const auto& params = layer.embed_param();
- auto data = createOp<ops::ConstantOp>(layer.name() + ".weights", convertBlob(layer.blobs(0)));
+ auto data = createOp<ops::ConstantOp>(layer.name() + ".weights", *convertBlob(layer.blobs(0)));
// FIXME Indices in Caffe have floating type, while in ModelIR they are integral.
auto result = createOp<ops::GatherOp>(layer.name(), data->getOutput(0), inputs[0], 0);
}
void NNInterpreter::visit(ops::ConstantOp& op) {
- var(op.getId()) = {*op.getValue()};
+ var(op.getId()) = {op.getValue()};
}
std::vector<TensorVariant> &NNInterpreter::getResult(Operation* op) {
mir::Shape input_shape = ShapeHelper::createShape(onnx_tensor->dims(),
static_cast<size_t>(onnx_tensor->dims_size()));
_inputTensors[name] = createTensor(onnx_tensor, input_shape);
- auto constant = _graph->create<mir::ops::ConstantOp>(name, _inputTensors[name]);
+ auto constant = _graph->create<mir::ops::ConstantOp>(name, *_inputTensors[name]);
_tensorNameToPrevMirOp[name] = constant;
constants.insert(constant);
} else {
void Serializer::visit(ops::ConstantOp& op) {
_curOp->_paramStartOffset = _buffer.size();
- serializeTensor(*op.getValue());
+ serializeTensor(op.getValue());
}
void Serializer::visit(ops::ReluOp& op) {