class SigmoidNeuron:
    def __init__(self):
        self.w=None
        self.b=None
    def perceptron(self,x):
        return np.do,python,machine-learning,deep-learning,neural-network,sigmoid"/>
	














首页 > 解决方案 > TypeError:无法将数组数据从 dtype('float64) 转换为 dtype('

class SigmoidNeuron:
    def __init__(self):
        self.w=None
        self.b=None
    def perceptron(self,x):
        return np.do

问题描述

class SigmoidNeuron:
    def __init__(self):
        self.w=None
        self.b=None
    def perceptron(self,x):
        return np.dot(x,self.w.T)+self.b
    def sigmoid(self,x):
        return 1.0/(1.0+np.exp(-x))
    def grad_w(self,x,y):
        y_pred = self.sigmoid(self.perceptron(x))
        return (y_pred-y)*y_pred*(1-y_pred)*x
    def grad_b(self,x,y):
        y_pred = self.sigmoid(self.perceptron(x))
        return (y_pred-y)*y_pred*(1-y_pred)
    def fit(self,x,y,epochs=1,learning_rate=1,initialise=True):
        #initialise w,b
        if initialise: 
            self.w=np.random.randn(1,X.shape[1])
            self.b=0

        for i in range(epochs):
            dw=0
            db=0
            for x,y in zip(X,Y):
                dw+=self.grad_w(x,y)
                db+=self.grad_b(x,y)
            self.w -= learning_rate*dw
            self.b -= learning_rate*db
`

我正在运行一个 sigmoid 神经网络代码,并且在使用数据运行此类时出现错误

X_scaled_train.astype(float)

array([[ 1.29929126, -0.90185206,  0.03173306, ..., -0.14142136,
        -0.15523011,  0.21232515],
       [-1.16225208, -0.86697607,  1.03451971, ..., -0.14142136,
        -0.15523011,  0.21232515],
       [ 1.77523922,  0.65594214,  0.03173306, ..., -0.14142136,
        -0.15523011,  0.21232515],
       ...,
       [ 1.44058831, -0.58796815, -0.66464655, ..., -0.14142136,
        -0.15523011,  0.21232515],
       [-1.42253612,  0.50481285,  1.54984063, ..., -0.14142136,
        -0.15523011,  0.21232515],
       [ 1.06875397,  0.6791928 ,  0.97880934, ..., -0.14142136,
        -0.15523011,  0.21232515]])
Y_scaled_train.astype(float)
array([[0.68],
       [0.72],
       [0.72],
       [0.6 ],
       [0.8 ],
       [0.64],
       [0.68],


这些是我在运行这条线时训练集的数据 sn.fit(X_scaled_train,Y_scaled_train,epochs=10,learning_rate=0.2) 我收到了那个类型错误我应该怎么做才能删除它

错误显示

TypeError                                 Traceback (most recent call last)
<ipython-input-167-51016d58d1f5> in <module>()
----> 1 sn.fit(X_scaled_train,Y_scaled_train,epochs=10,learning_rate=0.2)

2 frames
<ipython-input-25-2e09637c6d09> in perceptron(self, x)
      4         self.b=None
      5     def perceptron(self,x):
----> 6         return np.dot(x,self.w.T)+self.b
      7     def sigmoid(self,x):
      8         return 1.0/(1.0+np.exp(-x))

<__array_function__ internals> in dot(*args, **kwargs)

TypeError: Cannot cast array data from dtype('float64') to dtype('<U32') according to the rule 'safe'

如何不在屏幕旋转时重新加载 webview?

我有一个从 URL 加载内容的 webview。但是,webview 会在屏幕旋转时重新加载内容,我想避免这种情况。

我已经检查了关于 SO 的类似问题,所有这些问题都推荐:

  1. 通常不鼓励将方向放入android:configChanges="orientation..."其中,我不想使用它

  2. 或保存 webview 的状态webView.saveState(outState)


至于第二个选项,文档现在指出:

请注意,此方法不再存储此 WebView 的显示数据。如果从不调用 restoreState(Bundle),则先前的行为可能会泄漏文件。

这意味着它也不是解决方案。有可能解决这个问题吗?

标签: pythonmachine-learningdeep-learningneural-networksigmoid

解决方案


利用:

np.array(your_list)

your_list.values.astype(np.float)

或者:

new_list = [float(i) for i in your_list]

或者:

对于大型数组,我强烈建议您使用 numpy:

np.array(your_list, dtype=np.float32)
np.array(your_list,dtype=float)

如果它是浮点数,则不必指定:

np.array(your_list)

或者:

new_list = float("{:.1f}".format(float(input())))
list.append(new_list)

推荐阅读