24小时热门版块排行榜    

查看: 1619  |  回复: 6

蓝谙

至尊木虫 (职业作家)

[求助] Python定义函数时显示syntax error

def train(self,labels,iteration,rate,input_vecs):
        for i in range(iteration):
            self._one_iteration(input_vecs,labels,rate)  
上述代码的第一行显示有错:
runfile('D:/Data_Rabbit/code/myself/DL/Perceptron.py', wdir='D:/Data_Rabbit/code/myself/DL')
  File "D:/Data_Rabbit/code/myself/DL/Perceptron.py", line 19
    def train(self,labels,iteration,rate,input_vecs):
      ^
SyntaxError: invalid syntax

找了半天,实在看不出来哪里错了,恳请大家指点一下!

下面是全部代码:
from functools import reduce
import numpy as np

class Perceptron(object):
    def __init__(self,input_num,activator):
        self.input_num=input_num
        self.activator=activator
        self.weights=np.zeros(input_num)
        self.bias=0.0
        
    def __str__(self):
        return('weights:\t%f\nbias:\t%f')%self.weights,self.bias
        
    def predict(self,input_vec):
        return self.activator(
                sum(np.array(self.weights)*np.array(input_vec)+self.bias
                )
               

    def train(self,labels,iteration,rate,input_vecs):
        for i in range(iteration):
            self._one_iteration(input_vecs,labels,rate)   
            
    def _one_iteration(self,input_vecs,labels,rate):
        samples=zip(input_vecs,labels)
        for (input_vec,label) in samples:
            self._update_weight(input_vec,label,rate)
            
    def _update_weight(self,input_vec,label,rate):
        output=self.predict(input_vec)
        delta=label-output
        self.weights=self.weights+rate*delta*input_vec
        self.weights=lambda w,x: w+rate*delta*x,zip(
                self.weights,input_vec
                )
        self.bias+=rate*delta
        
def f(x):
    if x>0:
        return (1)
    else:
        return (0)
p=Perceptron(2,f)
input_vecs=np.array([[0,0],[0,1],[1,0],[1,1]])
labels=[0,0,0,1]
p.train(labels,10,0.1,input_vecs)

print(p.weights)
print(p.predict([0,0]))
print(p.predict([0,1]))
print(p.predict([1,0]))
print(p.predict([1,1]))
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

那-年

捐助贵宾 (正式写手)


jjdg: 金币+1, 感谢参与 2018-09-23 16:03:30
predict函数return部分少个括号

发自小木虫Android客户端
2楼2018-09-22 09:33:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhenter

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 那-年 at 2018-09-22 09:33:33
predict函数return部分少个括号

火眼金睛

发自小木虫IOS客户端
3楼2018-09-22 19:54:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

蓝谙

至尊木虫 (职业作家)

引用回帖:
2楼: Originally posted by 那-年 at 2018-09-22 09:33:33
predict函数return部分少个括号

谢谢

发自小木虫IOS客户端
4楼2018-09-22 20:23:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

那-年

捐助贵宾 (正式写手)

引用回帖:
3楼: Originally posted by zhenter at 2018-09-22 19:54:49
火眼金睛
...

代码写多了就好了

发自小木虫Android客户端
5楼2018-09-23 02:15:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

那-年

捐助贵宾 (正式写手)

引用回帖:
4楼: Originally posted by 蓝谙 at 2018-09-22 20:23:43
谢谢
...

这种错误就不要拿出来问了,自己翻来覆去的看,多写写就好了

发自小木虫Android客户端
6楼2018-09-23 02:16:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

蓝谙

至尊木虫 (职业作家)

引用回帖:
6楼: Originally posted by 那-年 at 2018-09-23 02:16:26
这种错误就不要拿出来问了,自己翻来覆去的看,多写写就好了
...

说实话我找了很久都没发现……看来还是火候不行
7楼2018-09-23 17:19:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 蓝谙 的主题更新
信息提示
请填处理意见