运行时警告:在类型转换中遇到无效值 quantized_data = ((data - min_value) / quantization_step).astype(int)
我在Ubuntu系统上运行一个Python代码,用来处理一个权重矩阵,但这个系统崩溃了,所以我现在在Windows上运行这个代码。问题是,它弹出了一个警告:16: RuntimeWarning: invalid value encountered in cast,意思是遇到了无效值。警告出现在这行代码上:quantized_data = ((data - min_value) / quantization_step).astype(int)
。在Linux上是没有这个问题的,而且这个代码对于负值的处理结果也是符合预期的。
import numpy as np
def quantize_data(data, num_levels):
# Find the maximum and minimum values
min_value = np.min(data)
max_value = np.max(data)
# Calculate the width of each quantization interval (bin)
quantization_step = (max_value - min_value) / (num_levels - 1) # -1 to ensure covering the entire range
# Handle division by zero
if np.isnan(data).any():
print("Warning: NaN values encountered in data.")
# Quantize the data
quantized_data = ((data - min_value) / quantization_step).astype(int)
print("Quatized Data",quantized_data)
# Handle NaN values
# quantized_data[np.isnan(quantized_data)] = 0 # Replace NaN values with 0
return quantized_data
def count_binary_digits(quantized_data):
# Initialize counters
num_ones = 0
num_zeros = 0
# Iterate through each value in quantized_data
for value in quantized_data.flat:
# Convert the value to its binary representation
binary_string = np.binary_repr(value)
print("binary",binary_string)
# Count the number of '1' and '0' digits in binary representation
num_ones += binary_string.count('1')
num_zeros += binary_string.count('0')
return num_ones, num_zeros
# Example usage:
file_path = 'D:/Διπλωματική Μεταπτυχιακού/Diplomatiki/code_for_wait_plot/results_trainLen_1000/Wout_rc_1000.npy'
data = np.load(file_path)
print(data)
num_levels = 2**32 # Number of quantization levels
# Quantize the data
quantized_data = quantize_data(data, num_levels)
print(quantized_data)
# Count binary digits
num_ones, num_zeros = count_binary_digits(quantized_data)
print("Number of '1' digits:", num_ones)
print("Number of '0' digits:", num_zeros)
这是第16行代码:quantized_data = ((data - min_value) / quantization_step).astype(int)
我试过一个在线编辑器,那个可以运行,但速度太慢了。
0 个回答
暂无回答