Python 数据类型';浮动128';不明白

Python 数据类型';浮动128';不明白,python,numpy,Python,Numpy,我对我的垃圾邮件和火腿模型使用了LR,它在exp中显示溢出。所以我决定将Y作为float64中的float128值。 它将“TypeError:数据类型'float128'不可理解”作为错误 我正在windows机器上使用Jupyter笔记本。 更改数据类型的代码为 y = y.astype('float128') print(y) 我的LR型号的代码是 import numpy as np class LR: def sigmoid(self,z):

我对我的垃圾邮件和火腿模型使用了LR,它在exp中显示溢出。所以我决定将Y作为float64中的float128值。 它将“TypeError:数据类型'float128'不可理解”作为错误 我正在windows机器上使用Jupyter笔记本。 更改数据类型的代码为

y = y.astype('float128')
print(y)
我的LR型号的代码是

import numpy as np
 
class LR:
     
    def sigmoid(self,z):
        return 1 / (1 + np.exp(-z))
     
    def add_intercept(self, X):
        intercept = np.ones((X.shape[0], 1))
        return np.concatenate((intercept, X), axis=1)
     
    def loss_func(self,X, y, weights):                 
        m =len(X)                
        yhat = sigmoid(np.dot(X, weights))        
        predict_1 = y * np.log(yhat)
        predict_0 = (1 - y) * np.log(1 - yhat)        
        return -sum(predict_1 + predict_0) / m
     
    def fit(self,X,y,epochs=25,learning_rate=0.05):
        loss = []
         
        X = self.add_intercept(X)
         
        weights = np.random.rand(X.shape[1])
        N = len(X)
 
        for _ in range(epochs):
            z = np.dot(X,weights)
            y_hat = sigmoid(z)
            weights -= learning_rate * (X.T @ (y_hat-y))/N
            loss.append(self.loss_func(X,y,weights))
        self.weights = weights
        self.loss = loss
        print(weights)
         
    def predict(self, X): 
        X = self.add_intercept(X)
        z = np.dot(X, self.weights)
        #Binary result
        return [1 if i > 0.5 else 0 for i in self.sigmoid(z)]

Numpy尚不支持
float128
类型。事实上,Numpy只支持本机浮点类型,而大多数平台不支持128位浮点精度。如果您不选择使用高于64位浮点的精度,则可以使用双精度(有关详细信息,请参阅)。或者,您可以使用慢速十进制Python包