diff --git a/reference_model/src/ops/ewise_binary.cc b/reference_model/src/ops/ewise_binary.cc
index a11d855..023158c 100644
--- a/reference_model/src/ops/ewise_binary.cc
+++ b/reference_model/src/ops/ewise_binary.cc
@@ -60,24 +60,25 @@
         return 1;
     }
 
-    // Input and output rank must match
-    // If it's not MUL, type also needs to match as well.
-    if (nodeType != Op_MUL)
-    {
-        if (inputs[0]->matchRankType(*outputs[0]))
-        {
-            printNodeValidationError("Binary operators (except MUL) input and output rank and type must match");
-            return 1;
-        }
-    }
-    else
+    // In some ops, only rank of input and output tensor needs to match
+    if (nodeType == Op_MUL || nodeType == Op_GREATER || nodeType == Op_EQUAL || nodeType == Op_GREATER_EQUAL)
     {
         if (inputs[0]->matchRank(*outputs[0]))
         {
-            printNodeValidationError("MUL operator input and output rank must match");
+            std::string err =
+                "Binary operators " + std::string(EnumNamesOp()[nodeType]) + " input and output rank must match";
+            printNodeValidationError(err.c_str());
             return 1;
         }
     }
+    // Otherwise both rand/type of input and output must match
+    else if (inputs[0]->matchRankType(*outputs[0]))
+    {
+        std::string err =
+            "Binary operators " + std::string(EnumNamesOp()[nodeType]) + " input and output rank and type must match";
+        printNodeValidationError(err.c_str());
+        return 1;
+    }
 
     a      = dynamic_cast<TosaReference::TensorTemplate<TIn>*>(inputs[0]);
     b      = dynamic_cast<TosaReference::TensorTemplate<TIn>*>(inputs[1]);
diff --git a/reference_model/src/subgraph_traverser.cc b/reference_model/src/subgraph_traverser.cc
index 3597314..82de69c 100644
--- a/reference_model/src/subgraph_traverser.cc
+++ b/reference_model/src/subgraph_traverser.cc
@@ -186,6 +186,9 @@
             weight_rank  = weight_tensor->GetShape().size();
         }
 
+        SUBGRAPH_ERROR_IF(op->GetOutputTensorNames().size() == 0,
+                          "SubgraphTraverser::initializeGraph(): Op=%s must have at least one output tensor.",
+                          EnumNamesOp()[op->GetOp()]);
         std::string output_name                = op->GetOutputTensorNames()[0];
         TosaSerializationTensor* output_tensor = block->GetTensorByName(output_name);
         SUBGRAPH_ERROR_IF(
