diff --git a/src/finn/custom_op/fpgadataflow/channelwise_op_batch.py b/src/finn/custom_op/fpgadataflow/channelwise_op_batch.py
index f6c5624543e47f488e5c42983a324ff48b43decd..630a231c880fa8a9bdae0d9047548ebfedda10fb 100644
--- a/src/finn/custom_op/fpgadataflow/channelwise_op_batch.py
+++ b/src/finn/custom_op/fpgadataflow/channelwise_op_batch.py
@@ -51,7 +51,7 @@ from . import templates
 def get_smallest_possible(vals):
     """Returns smallest (fewest bits) possible DataType that can represent
     value. Prefers unsigned integers where possible."""
-    vals = np.array(vals)
+    vals = np.array(vals, dtype=np.float64)
     for v in vals:
         assert int(v) == v, "Error float value"
 
diff --git a/src/finn/transformation/fpgadataflow/convert_to_hls_layers.py b/src/finn/transformation/fpgadataflow/convert_to_hls_layers.py
index 46a97f6fab25029727fd7c106d978ff60130dab6..a1a0c393fa4ebd2f84c9a9185bfedda27a3346f0 100644
--- a/src/finn/transformation/fpgadataflow/convert_to_hls_layers.py
+++ b/src/finn/transformation/fpgadataflow/convert_to_hls_layers.py
@@ -1269,7 +1269,7 @@ class InferChannelwiseLinearLayer(Transformation):
     def get_smallest_possible(self, vals):
         """Returns smallest (fewest bits) possible DataType that can represent
         value. Prefers unsigned integers where possible."""
-        vals = np.array(vals)
+        vals = np.array(vals, dtype=np.float64)
         for v in vals:
             assert int(v) == v, "Error float value"
 
@@ -1545,7 +1545,9 @@ class InferGlobalAccPoolLayer(Transformation):
                     model.make_new_valueinfo_name(), TensorProto.FLOAT, [1]
                 )
                 model.graph.value_info.append(mul_value)
-                model.set_initializer(mul_value.name, np.array(1 / (vecs[1] * vecs[2])))
+                model.set_initializer(
+                    mul_value.name, np.array(1 / (vecs[1] * vecs[2]), dtype=np.float32)
+                )
                 new_mul = helper.make_node(
                     "Mul",
                     [pool_out, mul_value.name],
diff --git a/tests/fpgadataflow/test_convert_to_hls_conv_fc_transition.py b/tests/fpgadataflow/test_convert_to_hls_conv_fc_transition.py
index 9b0f3d68aed655f0b36857d50a085093ea94aecb..64d0b3a84d6f1eaca51383d837f3c445e7a94122 100755
--- a/tests/fpgadataflow/test_convert_to_hls_conv_fc_transition.py
+++ b/tests/fpgadataflow/test_convert_to_hls_conv_fc_transition.py
@@ -201,7 +201,7 @@ def test_convert_to_hls_conv_fc_transition(conv_config, depthwise, use_reshape):
     model.set_initializer(
         "matmul_param", gen_finn_dt_tensor(fc_weight_dt, fc_param_shape)
     )
-    model.set_initializer("reshape_shape", np.array([1, -1]))
+    model.set_initializer("reshape_shape", np.array([1, -1], dtype=np.int64))
 
     model = model.transform(InferShapes())
     model = model.transform(InferDataTypes())
diff --git a/tests/fpgadataflow/test_convert_to_hls_layers_synthetic.py b/tests/fpgadataflow/test_convert_to_hls_layers_synthetic.py
index 6089901566cb412e63cd8acc7a8260081248ba52..f1d3bf5aa0bb62fe70f3957c2cbb3bc764792058 100644
--- a/tests/fpgadataflow/test_convert_to_hls_layers_synthetic.py
+++ b/tests/fpgadataflow/test_convert_to_hls_layers_synthetic.py
@@ -127,12 +127,12 @@ def make_model(ch, ifmdim):
     model = ModelWrapper(model)
 
     # set initializers for scalar add/mul nodes
-    model.set_initializer(add0_node.input[1], np.array([0.0]))
-    model.set_initializer(add1_node.input[1], np.array([7.0]))
-    model.set_initializer(add2_node.input[1], np.array([8.0]))
-    model.set_initializer(mul1_node.input[1], np.array([2.0]))
-    model.set_initializer(mul2_node.input[1], np.array([2.0]))
-    model.set_initializer(reshape_node.input[1], np.array([1, -1]))
+    model.set_initializer(add0_node.input[1], np.array([0.0], dtype=np.float32))
+    model.set_initializer(add1_node.input[1], np.array([7.0], dtype=np.float32))
+    model.set_initializer(add2_node.input[1], np.array([8.0], dtype=np.float32))
+    model.set_initializer(mul1_node.input[1], np.array([2.0], dtype=np.float32))
+    model.set_initializer(mul2_node.input[1], np.array([2.0], dtype=np.float32))
+    model.set_initializer(reshape_node.input[1], np.array([1, -1], dtype=np.int64))
 
     return model
 
diff --git a/tests/transformation/streamline/test_linear_past_eltwise.py b/tests/transformation/streamline/test_linear_past_eltwise.py
index 098b3f9d4f67a2cbc1a87fbb67a313d00e229777..2cdb9dfc5fe28f8f5cb000356b60c0388f9ef5b6 100644
--- a/tests/transformation/streamline/test_linear_past_eltwise.py
+++ b/tests/transformation/streamline/test_linear_past_eltwise.py
@@ -40,6 +40,7 @@ from finn.transformation.infer_shapes import InferShapes
 from finn.transformation.streamline.reorder import MoveLinearPastEltwiseAdd
 
 export_onnx_path = "test_linear_past_eltwise.onnx"
+np_default_dtype = np.float32
 
 # construct a synthetic graph to test:
 # topk insertion, topk conversion to hls, add conversion to hls
@@ -81,10 +82,10 @@ def make_model(shape):
     model = ModelWrapper(model)
 
     # set initializers for scalar add/mul nodes
-    model.set_initializer(add1_node.input[1], np.array([7.0]))
-    model.set_initializer(add2_node.input[1], np.array([8.0]))
-    model.set_initializer(mul1_node.input[1], np.array([3.0]))
-    model.set_initializer(mul2_node.input[1], np.array([3.0]))
+    model.set_initializer(add1_node.input[1], np.array([7.0], dtype=np_default_dtype))
+    model.set_initializer(add2_node.input[1], np.array([8.0], dtype=np_default_dtype))
+    model.set_initializer(mul1_node.input[1], np.array([3.0], dtype=np_default_dtype))
+    model.set_initializer(mul2_node.input[1], np.array([3.0], dtype=np_default_dtype))
 
     return model
 
diff --git a/tests/transformation/streamline/test_move_maxpool_past_multithreshold.py b/tests/transformation/streamline/test_move_maxpool_past_multithreshold.py
index fca05afa5b155e6a293857c14c10c4a9b80eeaf4..d07f5d275395b9b30bf5e3d9f60ade05c62766ae 100644
--- a/tests/transformation/streamline/test_move_maxpool_past_multithreshold.py
+++ b/tests/transformation/streamline/test_move_maxpool_past_multithreshold.py
@@ -82,7 +82,7 @@ def test_move_maxpool_past_multithreshold():
     model = model.transform(InferShapes())
     model = model.transform(InferDataTypes())
 
-    model.set_initializer("thres1", np.array([[0]]))
+    model.set_initializer("thres1", np.array([[0]], dtype=np.float32))
     model.set_initializer(
         "thres2", get_multithreshold_rand_params(*thres2_shape, seed=0)
     )