Skip to content

Commit

Permalink
Set dtype=object to create numpy array
Browse files Browse the repository at this point in the history
In order to create an array from list of inhomogeneus objects explicitly
dtype to object

Since numpy 1.24 numpy raises ValueError when creating Ragged array
numpy/numpy#22004
  • Loading branch information
d61h6k4 committed Feb 28, 2023
1 parent 28eb117 commit 0c45413
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 12 deletions.
2 changes: 1 addition & 1 deletion pyproject.toml
Expand Up @@ -139,7 +139,7 @@ version = ">=1.19.2,<1.22.0"
python = "~=3.7.0"

[[tool.poetry.dependencies.numpy]]
version = ">=1.19.2,<1.24.0"
version = ">=1.19.2,<1.25.0"
python = ">=3.8,<3.11"

[[tool.poetry.dependencies.scipy]]
Expand Down
2 changes: 1 addition & 1 deletion rasa/utils/tensorflow/model_data.py
Expand Up @@ -771,7 +771,7 @@ def balanced_data(self, data: Data, batch_size: int, shuffle: bool) -> Data:
for f in features:
final_data[key][sub_key].append(
FeatureArray(
np.concatenate(np.array(f)),
np.concatenate(np.array(f, dtype=object)),
number_of_dimensions=f[0].number_of_dimensions,
)
)
Expand Down
8 changes: 4 additions & 4 deletions rasa/utils/tensorflow/model_data_utils.py
Expand Up @@ -385,19 +385,19 @@ def _feature_arrays_for_attribute(
for key, values in _sparse_features.items():
if consider_dialogue_dimension:
sparse_features[key] = FeatureArray(
np.array(values), number_of_dimensions=4
np.array(values, dtype=object), number_of_dimensions=4
)
else:
sparse_features[key] = FeatureArray(
np.array([v[0] for v in values]), number_of_dimensions=3
np.array([v[0] for v in values], dtype=object), number_of_dimensions=3
)

for key, values in _dense_features.items():
if consider_dialogue_dimension:
dense_features[key] = FeatureArray(np.array(values), number_of_dimensions=4)
dense_features[key] = FeatureArray(np.array(values, dtype=object), number_of_dimensions=4)
else:
dense_features[key] = FeatureArray(
np.array([v[0] for v in values]), number_of_dimensions=3
np.array([v[0] for v in values], dtype=object), number_of_dimensions=3
)

attribute_to_feature_arrays = {
Expand Down
18 changes: 12 additions & 6 deletions tests/utils/tensorflow/conftest.py
Expand Up @@ -21,7 +21,8 @@ async def model_data() -> RasaModelData:
np.random.rand(3, 14),
np.random.rand(1, 14),
np.random.rand(3, 14),
]
],
dtype=object,
),
number_of_dimensions=3,
),
Expand All @@ -43,7 +44,8 @@ async def model_data() -> RasaModelData:
scipy.sparse.csr_matrix(
np.random.randint(5, size=(3, 10))
),
]
],
dtype=object,
),
number_of_dimensions=3,
),
Expand Down Expand Up @@ -106,7 +108,8 @@ async def model_data() -> RasaModelData:
np.random.randint(5, size=(7, 10))
),
],
]
],
dtype=object,
),
number_of_dimensions=4,
),
Expand All @@ -132,7 +135,8 @@ async def model_data() -> RasaModelData:
np.random.rand(1, 14),
np.random.rand(7, 14),
],
]
],
dtype=object,
),
number_of_dimensions=4,
),
Expand All @@ -148,7 +152,8 @@ async def model_data() -> RasaModelData:
np.random.randint(2, size=(3, 10)),
np.random.randint(2, size=(1, 10)),
np.random.randint(2, size=(3, 10)),
]
],
dtype=object,
),
number_of_dimensions=3,
)
Expand All @@ -167,7 +172,8 @@ async def model_data() -> RasaModelData:
np.array([[0], [1], [1]]),
np.array([[0], [1]]),
np.array([[0], [0], [0]]),
]
],
dtype=object,
),
number_of_dimensions=3,
)
Expand Down

0 comments on commit 0c45413

Please sign in to comment.