python2.7 多进程multiprocessing报错

Traceback (most recent call last):
File "", line 1, in
File "C:\Anaconda\lib\multiprocessing\forking.py", line 380, in main
prepare(preparation_data)
File "C:\Anaconda\lib\multiprocessing\forking.py", line 488, in prepare
Traceback (most recent call last):
File "", line 1, in
assert main_name not in sys.modules, main_name
AssertionError: operator
File "C:\Anaconda\lib\multiprocessing\forking.py", line 380, in main
prepare(preparation_data)
File "C:\Anaconda\lib\multiprocessing\forking.py", line 488, in prepare
Traceback (most recent call last):
File "", line 1, in
File "C:\Anaconda\lib\multiprocessing\forking.py", line 380, in main
assert main_name not in sys.modules, main_name
AssertionError: operator
Traceback (most recent call last):
File "", line 1, in
prepare(preparation_data)
File "C:\Anaconda\lib\multiprocessing\forking.py", line 488, in prepare
File "C:\Anaconda\lib\multiprocessing\forking.py", line 380, in main
prepare(preparation_data)
File "C:\Anaconda\lib\multiprocessing\forking.py", line 488, in prepare
assert main_name not in sys.modules, main_name
AssertionError: operator
assert main_name not in sys.modules, main_name
AssertionError: operator

源码

 first=sh_100.start
second=sh_200.start
third=sh_300.start
fourth=sh_400.start

if __name__=='__main__':
    p1=Process(target=first)
    p2=Process(target=second)
    p3=Process(target=third)
    p4=Process(target=fourth)
    p1.start()
    p2.start()
    p3.start()
    p4.start()

1个回答

n你对饮的first等脚本能不能够启动

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python2.6.9的代码改成3.5.2运行, import Manager报错
由于工作原因,现在改用py3.5.2可是其中的一个文件开头的导包from multiprocessing import Manager就报错了怎么解决,顺便再问一下另一个文件里的copy()方法也报错,怎么解决,谢谢
python运用多进程无法开启movidius神经棒
我正在做一个项目其中运用了神经棒,我想用运用多进程将神经棒与另外一个程序进行通讯 ,但是我发现用多进程的时候,他总是显示无法开启神经棒不知道是什么原因。有没有大神 能帮忙解决下。 主程序如下: ** from move import Move from hh import Detect from capture1 import Capture from multiprocessing import Process, Queue import time import cv2 q1 = Queue() q2 = Queue() def CAP_DETC(q1,q2): cap = Capture() cap_detc = Detect() while True: cap.save_img() img = cv2.imread('images/1.jpg') time.sleep(0.1) if q2.get(): p = cap_detc.preprocess_image(img) m = cap_detc.predict(p) n = cap_detc.judge(m) q1.put(n) def MOVE(q1,q2): move = Move() q2.put(1) while True: if q1.get() == 1: move.turn_right() elif q1.get() == 2: move.turn_left() elif q1.get() == 0: move.go_forward() elif q1.get() == 3: move.stop() move.turn_left() else : print 'Something is wrong!' move.stop() p1 = Process(target=CAP_DETC,args=(q1,q2)) p2 = Process(target=MOVE,args=(q1,q2)) p1.start() p2.start() p1.join() p2.join()** 在Terminal显示的错误: Process Process-1: Traceback (most recent call last): File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run self._target(*self._args, **self._kwargs) File "main_2.py", line 13, in CAP_DETC cap_detc = Detect() File "/home/pi/robot/hh.py", line 21, in __init__ self.device.OpenDevice() File "/usr/local/lib/python2.7/dist-packages/mvnc/mvncapi.py", line 147, in OpenDevice raise Exception(Status(status)) Exception: mvncStatus.ERROR ^CTraceback (most recent call last): File "main_2.py", line 46, in <module> p2.join() File "/usr/lib/python2.7/multiprocessing/process.py", line 145, in join res = self._popen.wait(timeout) File "/usr/lib/python2.7/multiprocessing/forking.py", line 154, in wait return self.poll(0) File "/usr/lib/python2.7/multiprocessing/forking.py", line 135, in poll pid, sts = os.waitpid(self.pid, flag) KeyboardInterrupt Process Process-2: Traceback (most recent call last): File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run self._target(*self._args, **self._kwargs) File "main_2.py", line 27, in MOVE if q1.get() == 1: File "/usr/lib/python2.7/multiprocessing/queues.py", line 117, in get res = self._recv() KeyboardInterrupt 如果我采用多线程的方式的话,它是可以进行的。一开启进程就不可以了希望有大神帮忙解决下。
Python多进程问题的报错问题
小弟想通过多进程实现客户端给服务器发送信息,服务器同时接收多个信息。但是会收到以下报错: OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 看网上说是进程停止又重启造成的结果 小弟贴下自己的代码,麻烦大家看下 ``` import multiprocessing from socket import import time server_name='172.20.53.211' port_number1=12002 port_number2=12003 def process_one(): server_socket1 = socket(AF_INET, SOCK_DGRAM) server_socket1.bind(('', port_number1)) data_receive1, client_address = server_socket1.recvfrom(1024) server_socket1.close() print(data_receive1,1) def process_two(): server_socket2 = socket(AF_INET, SOCK_DGRAM) server_socket2.bind(('', port_number2)) data_receive2, client_address = server_socket2.recvfrom(1024) server_socket2.close() print(data_receive2,2) p1=multiprocessing.Process(target=process_one()) p1.start() p2=multiprocessing.Process(target=process_two()) p2.start() ``` 以上是服务器端的代码 以下是客户端发送代码 ``` from socket import * import time server_name='172.20.53.211' port_number1=12002 port_number2=12003 client_socket = socket(AF_INET, SOCK_DGRAM) f1=open('1.txt','rb') fcontent=f1.read() client_socket.sendto(fcontent,(server_name, port_number1)) time.sleep(0.2) client_socket.sendto('a'.encode('UTF-8'),(server_name, port_number2)) client_socket.close() ``` 求大佬指出哪里错了,谢谢
关于python使用DBUtils建立连接池连接数据库报错pymysql.err.OperationalError: (2014, 'Command Out of Sync')?
我的爬虫程序使用了DBUtils建立了数据库连接池,目前在windows上运行没有问题,但在centos上运行会出现如下报错,困扰了两天了,特发此贴请教下各位大佬,感激不尽 ``` Process Process-4: Traceback (most recent call last): File "/usr/lib64/python3.6/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/usr/lib64/python3.6/multiprocessing/process.py", line 93, in run self._target(*self._args, **self._kwargs) File "/home/wwwroot/TikTokSpider/spider/main_spider.py", line 358, in run_spider user_spider(sec_uid) File "/home/wwwroot/TikTokSpider/spider/main_spider.py", line 54, in user_spider user_handler(user, db) File "/home/wwwroot/TikTokSpider/public/common.py", line 853, in user_handler db.insert(insert_user, nickname) File "/home/wwwroot/TikTokSpider/public/db_con.py", line 88, in insert return self.__edit(sql, log) File "/home/wwwroot/TikTokSpider/public/db_con.py", line 102, in __edit self.db.begin() File "/pyenvs/spider/lib64/python3.6/site-packages/DBUtils/SteadyDB.py", line 425, in begin begin(*args, **kwargs) File "/pyenvs/spider/lib64/python3.6/site-packages/pymysql/connections.py", line 410, in begin self._read_ok_packet() File "/pyenvs/spider/lib64/python3.6/site-packages/pymysql/connections.py", line 396, in _read_ok_packet raise err.OperationalError(2014, "Command Out of Sync") pymysql.err.OperationalError: (2014, 'Command Out of Sync') ```
ubuntu上python无法爬取网页
在ubuntu12.04下写了个简单的python测试代码: # -*- coding: UTF-8 -*- import time,urllib2,urllib,StringIO,sys,os,multiprocessing,sqlite3 if __name__ == '__main__': stockUrl="http://www.baidu.com" stockWeb = urllib.urlopen(stockUrl).read() print stockWeb 但是出现了如下错误: Traceback (most recent call last): File "test.py", line 6, in <module> stockWeb = urllib.urlopen(stockUrl).read() File "/usr/lib/python2.7/urllib.py", line 86, in urlopen return opener.open(url) File "/usr/lib/python2.7/urllib.py", line 207, in open return getattr(self, name)(url) File "/usr/lib/python2.7/urllib.py", line 344, in open_http h.endheaders(data) File "/usr/lib/python2.7/httplib.py", line 954, in endheaders self._send_output(message_body) File "/usr/lib/python2.7/httplib.py", line 814, in _send_output self.send(msg) File "/usr/lib/python2.7/httplib.py", line 776, in send self.connect() File "/usr/lib/python2.7/httplib.py", line 757, in connect self.timeout, self.source_address) File "/usr/lib/python2.7/socket.py", line 553, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): IOError: [Errno socket error] [Errno -2] Name or service not known GOOGLE了也没找到解决办法,这是什么问题? 另外,同样的代码吗,我在另一台同样环境机器上是可以运行的
Python多进程创建Manager()对象时,为啥报OSError: [Errno 5] Input/output error?
我用Python的multiprocess实现多进程任务处理,其中用到了Manager对象以实现父子进程间的通信。创建这个Manager对象的语句是在一个循环当中,循环第一次没什么问题,但后面第二次或者第n次的时候就会报标题中的错误,具体错误栈信息如下所示,望高人指点! Traceback (most recent call last): File "btt_tick_main.py", line 252, in btt_main _btt_date(begin_fmt, task_q_list, return_q) File "btt_tick_main.py", line 43, in _btt_date amAlternativeMain.alternative_before_trading(date) File "/data/source/qtdata_btt/script/qtdata/actualtrade/alternative/amAlternativeMain.py", line 83, in alternative_before_trading choosed_codes = strategy.screen_day_condition(real_trading_date) File "/data/source/qtdata_btt/script/qtdata/actualtrade/strategy/extends/st_c_zeg/st_c_zeg.py", line 31, in screen_day_condition return fix_alternative2(date, self.get_id(), self._strategyManager) File "/data/source/qtdata_btt/script/qtdata/actualtrade/strategy/extends/st_c_zeg/c_zeg_alternative_logic.py", line 98, in fix_alternative2 manager = Manager() File "/opt/quant/anaconda3/lib/python3.6/multiprocessing/context.py", line 56, in Manager m.start() File "/opt/quant/anaconda3/lib/python3.6/multiprocessing/managers.py", line 513, in start self._process.start() File "/opt/quant/anaconda3/lib/python3.6/multiprocessing/process.py", line 105, in start self._popen = self._Popen(self) File "/opt/quant/anaconda3/lib/python3.6/multiprocessing/context.py", line 277, in _Popen return Popen(process_obj) File "/opt/quant/anaconda3/lib/python3.6/multiprocessing/popen_fork.py", line 18, in __init__ sys.stderr.flush() OSError: [Errno 5] Input/output error
多进程获得函数返回值问题:get()函数会导致multiprocessing.pool.apply_async 子进程不执行,是什么机理?
想通过使用multiprocessing.pool.apply_async多进程实现一个小功能,在 a[]后不断增加func()的返回值。但是在使用apply_async().get()函数后,子进行并未执行,程序仍然按照顺序执行,运行时间也未减少,约4秒,但是在仅运行apply_async()打印时,程序运行时间几乎是按进程数减少的,约2秒。 如何才能实现多进程获取返回值? 求教各位大神! ``` import time start = time.time() def func(args1): time.sleep(1) print(args1) return (args1 ** 2) from multiprocessing import Pool if __name__ == "__main__": pool = Pool(2) a = [] for i in range(4): a.append(pool.apply_async(func, (i,)).get()) pool.close() pool.join() print(a) end = time.time() print('Running time: %.2f Seconds' % (end - start)) ```
selenium+python 多进程一直报错
#coding=utf-8 import unittest, time, os, multiprocessing from email.mime.text import MIMEText import HTMLTestRunner def EEEcreatsuite1(): casedir=[] listaa=os.listdir('D:\\eclipes_case\\test_case\\src\\') print listaa for xx in listaa: if "test_case" in xx: casedir.append(xx) print casedir suite=[] for n in casedir: testunit=unittest.TestSuite() discover=unittest.defaultTestLoader.discover(n,pattern ='start_*.py',top_level_dir=n) print discover for test_suite in discover: for test_case in test_suite: testunit.addTests(test_case) suite.append(testunit) return suite,casedir def EEEEEmultiRunCase(suite,casedir): now = time.strftime('%Y-%m-%d-%H_%M_%S',time.localtime(time.time())) filename = 'D:\\eclipes_case\\test_case\\src\\test_report\\'+now+'result.html' fp = file(filename, 'wb') proclist=[] s=0 for i in suite: runner = HTMLTestRunner.HTMLTestRunner( stream=fp, title=u'测试报告', description=u'用例执行情况:' ) proc = multiprocessing.Process(target=runner.run(i),args=(i,)) proclist.append(proc) s=s+1 for proc in proclist: proc.start() for proc in proclist: proc.join() fp.close() if __name__ == "__main__": runtmp = EEEcreatsuite1() EEEEEmultiRunCase(runtmp[0],runtmp[1]) 报错: Method=test_youdao_search>]>]>]> . Time Elapsed: 0:00:34.414000 . Time Elapsed: 0:00:13.649000 Process Process-1: Traceback (most recent call last): File "C:\Python27\lib\multiprocessing\process.py", line 258, in _bootstrap self.run() File "C:\Python27\lib\multiprocessing\process.py", line 114, in run self._target(*self._args, **self._kwargs) TypeError: '_TestResult' object is not callable Process Process-2: Traceback (most recent call last): File "C:\Python27\lib\multiprocessing\process.py", line 258, in _bootstrap self.run() File "C:\Python27\lib\multiprocessing\process.py", line 114, in run self._target(*self._args, **self._kwargs) TypeError: '_TestResult' object is not callable
python tkinter创建GUI后创建多进程报错
代码如下: ``` import multiprocessing as mp from tkinter import * class Multi_pro: def __init__(self,master): self.parent = master self.parent.geometry('400x400') self.bt = Button(self.parent,text='开始子进程',command=self.pro_start) self.bt.place(x=5,y=2) self.scbar = Scrollbar(self.parent,bd = 30) self.scbar.place(x=360,y=25) self.lstbx = Listbox(self.parent,height=8,width = 50,yscrollcommand = self.scbar.set) self.lstbx.place(x=1,y=25) self.lstbx.insert(END,'lalala!') self.scbar.config(command = self.lstbx.yview) def pro_start(self): self.q = mp.Queue() self.sunpro1 = mp.Process(target=self.func) self.sunpro1.start() while True: print(self.q.get()) def func(self): sum = 0 for i in range(100): sum+=i q.put(sum) if __name__ == '__main__': tk = Tk() Multi_pro(tk) tk.mainloop() ``` ![代码错误提示如下:](https://img-ask.csdn.net/upload/201911/02/1572681785_951697.png)
python使用pip安装multiprocess报错
Windows8下使用pip -install multiprocessing 安装包时报了这个错误,我用的是python3.6,为什么会安装出python2中的包?
读取CSV文件中的数据并随即取值,出现object of type 'float' has no len()报错
我想通过读取CSV中的丢失率数据添加信道丢失率,在已经仿照之前为wifi速度设置rate,来写loss设置 ,丢失率的数据保存在stats文件夹的lossrate.csv中。运行程序在random库报错,未修改之前或者给直接设置loss=常数,运行正常。请问各位大神,我的程序哪里写错了,我都是仿照着之前的rate定义进行写的。(我自己写的部分已经用注释标出) ![图片说明](https://img-ask.csdn.net/upload/201905/09/1557413980_977708.png)![图片说明](https://img-ask.csdn.net/upload/201905/09/1557414084_275476.png)![图片说明](https://img-ask.csdn.net/upload/201905/09/1557414109_173608.png) ``` Process Process-22: Traceback (most recent call last): File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/usr/lib/python3.6/multiprocessing/process.py", line 93, in run self._target(*self._args, **self._kwargs) File "/home/lingjie/mp-congestion/scenarios/../scripts/multimod.py", line 41, in run loss = rand.choice(loss) File "/usr/lib/python3.6/random.py", line 258, in choice i = self._randbelow(len(seq)) TypeError: object of type 'float' has no len() Process Process-21: Traceback (most recent call last): File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/usr/lib/python3.6/multiprocessing/process.py", line 93, in run self._target(*self._args, **self._kwargs) File "/home/lingjie/mp-congestion/scenarios/../scripts/multimod.py", line 41, in run loss = rand.choice(loss) File "/usr/lib/python3.6/random.py", line 258, in choice i = self._randbelow(len(seq)) TypeError: object of type 'float' has no len() ```
windows上用python学习multiprocessing模块的进程池,程序创建了进程池,但是却没用进入子进程?
1.问题描述: 看网课学习python,昨天学到进程池和进程之间的通信。 看老师的视频时运行正确,自己确实没出想象中的效果。 在windows上用python学习multiprocessing模块的进程池,在pycharm中程序创建了进程池,但是却没用进入子进程?但是在命令窗口去可以进入子进程。 代码: ``` # 测试进程池的使用 from multiprocessing import Pool import time, os def work(num): print('咋了?', end='\t') print(5*num) time.sleep(1) if __name__ == "__main__": print('Parent process %s.' % os.getpid()) # 定义一个进程池,设置最大进程为4,默认为cpu核心数 po = Pool(4) for i in range(10): # 调用apply_saync()方法,apply_saync选择要调用的目标,以及将目标需要的参数 # 以元组形式传递,每次循环都会用空出来的进程去调用目标。 po.apply_async(func=work, args=(i,)) # 关闭进程池,只准许进程从进程池出来,不准进入进程池 po.close() # 主进程等待子进程结束,必须写再close后。 po.join() print('子进程结束') ``` 然后在pycharm的运行结果是既没有报错也没有执行子进程的指令 图是这样的: ![图片说明](https://img-ask.csdn.net/upload/201901/16/1547605427_367407.png) 为了给各位大佬提供更多信息,我在循环那debug了下,尽管我目前还看不懂。 ![图片说明](https://img-ask.csdn.net/upload/201901/16/1547605634_254497.png) 在Windows的命令窗口下直接运行结果就有了。貌似得到我的结果了。 ![图片说明](https://img-ask.csdn.net/upload/201901/16/1547605512_956498.png) 说明:昨天也查了半天资料,说的都是加if __name__ == "__main__": 来保证正常,可是我还是出问题了! 请各位大佬指点迷津,拯救一个初学者吧。
python multiprocessing 问题
最近写一个简单的web后端项目(结构简单,并发不高,但是处理逻辑稍复杂),在某一个url路由的响应函数(Run)中,处理逻辑是每次调用到Run,都启动一个子进程来处理逻辑,子进程完了之后通过multiprocessing.Queue将结果反馈给父进程(父进程收到消息表示子进程完成任务并准备结束了)。 ```python Run函数中的流程: 1. q = Queue() #创建queue 2. p = Process(target=run_child,args=(q)) #创建处理业务的子进程,run_child函数耗时较长 3. parent_listen_q(p,q) #这个函数中以gevent协程的方式不停循环从q中get消息,同时join子进程 parent_listen_q函数流程: def _inner(): 1. while True: #循环收消息 msg = q.get_nowait(q) if msg: break gevent.sleep(0.01) 2. handle(msg) #处理消息 3. p.join() #避免僵尸 gevent.spawn(_inner) #协程 ``` 这个逻辑看起来没有问题,并且很简洁(连queue都是每个子进程分开的互不影响),但是问题就出在每个子进程一个queue上。 一个场景是: 用户接连调用了两次Run,期间间隔很短,子进程的生命周期长于这个间隔。会启动了两个子进程,记为c1,c2,父进程记为p。 第一次调用Run的时候,关系是:父p,子c1,队列q1。 第二次调用Run的时候,关系是:父p,子c2,队列q2,但此时c1还未结束,父进程的parent_listen_q协程也还在运行中,c2会继承这个运行的协程, 导致的问题是有两个进程(p,c2)同时在循环从q1中get数据,当后续c1结束向q1中发消息时,有可能消息被c2抢先取到,而真正关心这个消息的p却收不到消息了,这样就出了问题。 出现这个问题的根本原因有两个: 1. fork子进程会继承父进程的栈空间,导致了协程也被继承下来了。 2. queue底层其实也是基本的ipc对象,看Queue的代码是pipe实现的,在fork的时候也会被继承,并且,如果不继承的话反而实现不了ipc了。 所以,上面这种结构的处理逻辑对这个问题就不是蛮好解决了,看起来不能给queue设置一个“close_on_exec”的标志。 我在这里暂时用了一个很挫的方法曲线解决了这个问题(确实挺搓,因为不是避免,而是修补): ```python 修补后的parent_listen_q函数流程: def _inner(): 1. while True: msg = q.get_nowait() if p._parent_pid != os.getpid(): #如果是子进程 if msg: q.put_nowait(msg) #如果发现被子进程不小心收错了,重新塞回去(汗。。) return #直接结束这个冒牌货协程 if msg: break gevent.sleep(0.01) 2. handle(msg) 3. p.join() #如果在非父进程中,这行会报异常 gevent.spawn(_inner) ``` 在这里向各位大神请赐教,不知有没有更优雅的方法解决这个问题,本人新手,求带。
Tensorflow 2.0 : When using data tensors as input to a model, you should specify the `steps_per_epoch` argument.
下面代码每次执行到epochs 中的最后一个step 都会报错,请教大牛这是什么问题呢? ``` import tensorflow_datasets as tfds dataset, info = tfds.load('imdb_reviews/subwords8k', with_info=True, as_supervised=True) train_dataset,test_dataset = dataset['train'],dataset['test'] tokenizer = info.features['text'].encoder print('vocabulary size: ', tokenizer.vocab_size) sample_string = 'Hello world, tensorflow' tokenized_string = tokenizer.encode(sample_string) print('tokened id: ', tokenized_string) src_string= tokenizer.decode(tokenized_string) print(src_string) for t in tokenized_string: print(str(t) + ': '+ tokenizer.decode([t])) BUFFER_SIZE=6400 BATCH_SIZE=64 num_train_examples = info.splits['train'].num_examples num_test_examples=info.splits['test'].num_examples print("Number of training examples: {}".format(num_train_examples)) print("Number of test examples: {}".format(num_test_examples)) train_dataset=train_dataset.shuffle(BUFFER_SIZE) train_dataset=train_dataset.padded_batch(BATCH_SIZE,train_dataset.output_shapes) test_dataset=test_dataset.padded_batch(BATCH_SIZE,test_dataset.output_shapes) def get_model(): model=tf.keras.Sequential([ tf.keras.layers.Embedding(tokenizer.vocab_size,64), tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64)), tf.keras.layers.Dense(64,activation='relu'), tf.keras.layers.Dense(1,activation='sigmoid') ]) return model model =get_model() model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) import math #from tensorflow import keras #train_dataset= keras.preprocessing.sequence.pad_sequences(train_dataset, maxlen=BUFFER_SIZE) history =model.fit(train_dataset, epochs=2, steps_per_epoch=(math.ceil(BUFFER_SIZE/BATCH_SIZE) -90 ), validation_data= test_dataset) ``` Train on 10 steps Epoch 1/2 9/10 [==========================>...] - ETA: 3s - loss: 0.6955 - accuracy: 0.4479 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-111-8ddec076c096> in <module> 6 epochs=2, 7 steps_per_epoch=(math.ceil(BUFFER_SIZE/BATCH_SIZE) -90 ), ----> 8 validation_data= test_dataset) /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, max_queue_size, workers, use_multiprocessing, **kwargs) 726 max_queue_size=max_queue_size, 727 workers=workers, --> 728 use_multiprocessing=use_multiprocessing) 729 730 def evaluate(self, /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_arrays.py in fit(self, model, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, **kwargs) 672 validation_steps=validation_steps, 673 validation_freq=validation_freq, --> 674 steps_name='steps_per_epoch') 675 676 def evaluate(self, /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_arrays.py in model_iteration(model, inputs, targets, sample_weights, batch_size, epochs, verbose, callbacks, val_inputs, val_targets, val_sample_weights, shuffle, initial_epoch, steps_per_epoch, validation_steps, validation_freq, mode, validation_in_fit, prepared_feed_values_from_dataset, steps_name, **kwargs) 437 validation_in_fit=True, 438 prepared_feed_values_from_dataset=(val_iterator is not None), --> 439 steps_name='validation_steps') 440 if not isinstance(val_results, list): 441 val_results = [val_results] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_arrays.py in model_iteration(model, inputs, targets, sample_weights, batch_size, epochs, verbose, callbacks, val_inputs, val_targets, val_sample_weights, shuffle, initial_epoch, steps_per_epoch, validation_steps, validation_freq, mode, validation_in_fit, prepared_feed_values_from_dataset, steps_name, **kwargs) 174 if not is_dataset: 175 num_samples_or_steps = _get_num_samples_or_steps(ins, batch_size, --> 176 steps_per_epoch) 177 else: 178 num_samples_or_steps = steps_per_epoch /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_arrays.py in _get_num_samples_or_steps(ins, batch_size, steps_per_epoch) 491 return steps_per_epoch 492 return training_utils.check_num_samples(ins, batch_size, steps_per_epoch, --> 493 'steps_per_epoch') 494 495 /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_utils.py in check_num_samples(ins, batch_size, steps, steps_name) 422 raise ValueError('If ' + steps_name + 423 ' is set, the `batch_size` must be None.') --> 424 if check_steps_argument(ins, steps, steps_name): 425 return None 426 /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_utils.py in check_steps_argument(input_data, steps, steps_name) 1199 raise ValueError('When using {input_type} as input to a model, you should' 1200 ' specify the `{steps_name}` argument.'.format( -> 1201 input_type=input_type_str, steps_name=steps_name)) 1202 return True 1203 ValueError: When using data tensors as input to a model, you should specify the `steps_per_epoch` argument.
训练了一段时间出现了Exception ignored in: <bound method _DataLoaderIter.__del__ of <torch.utils.data.dataloader._DataLoaderIter object at 0x7f3e6f2f14e0>>问题,请问如何解决?
错误内容: Exception ignored in: <bound method _DataLoaderIter.__del__ of <torch.utils.data.dataloader._DataLoaderIter object at 0x7f3e6f2f14e0>> Traceback (most recent call last): File "/home/omnisky/.local/lib/python3.5/site-packages/torch/utils/data/dataloader.py", line 399, in __del__ File "/home/omnisky/.local/lib/python3.5/site-packages/torch/utils/data/dataloader.py", line 378, in _shutdown_workers File "/usr/lib/python3.5/multiprocessing/queues.py", line 345, in get File "<frozen importlib._bootstrap>", line 969, in _find_and_load File "<frozen importlib._bootstrap>", line 954, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 887, in _find_spec TypeError: 'NoneType' object is not iterable (https://img-ask.csdn.net/upload/201910/08/1570495131_689106.png)
Python多线程多进程问题
新手求问,刚学习python,发现在两个线程或两个进程开启后(都有一个while循环),必须要第一个执行完成,第二个才会执行,求问为什么会这样 ``` import threading import time class Test: def run(self): threading.Thread(target=self.func1()).start() threading.Thread(target=self.func2()).start() def func1(self): count = 0 while count < 3: print("thread1") count += 1 time.sleep(2) def func2(self): count = 0 while count < 3: print("thread2") count += 1 time.sleep(1) if __name__ == "__main__": Test().run() ``` ``` import multiprocessing import time class Test: def run(self): multiprocessing.Process(target=self.func1()).start() multiprocessing.Process(target=self.func2()).start() def func1(self): count = 0 while count < 3: print("thread1") count += 1 time.sleep(2) def func2(self): count = 0 while count < 3: print("thread2") count += 1 time.sleep(1) if __name__ == "__main__": Test().run() ``` 执行结果: ``` thread1 thread1 thread1 thread2 thread2 thread2 ```
这是一个关于PYTHON多线程多进程的问题
这是我写的服务器代码 ``` import socket,os from multiprocessing import Process def haha(yong): while True: data=yong.recv(100) if data.decode()!='q': yong.send(data) else: yong.send('q'.encode()) yong.close() break if __name__ == '__main__': service = socket.socket(socket.AF_INET, socket.SOCK_STREAM) service.bind(('127.0.0.1', 6)) service.listen(4) print(os.getpid()) while True: yong,add=service.accept() jaiyou=Process(target=haha,args=(yong,)) jaiyou.start() service.close() ``` 这是我写的客户机代码 ``` import socket,os quest1=socket.socket(socket.AF_INET,socket.SOCK_STREAM) quest1.connect(('127.0.0.1',6)) while True: quest1.send(input().encode()) data=quest1.recv(100).decode() if data=='q': break; else: print(os.getpid()) continue quest1.close() ``` 当多个客户机 连接一个服务器的时候,每个进程ID号都是不同的,这我可以理解,多进程嘛 但是,当我把服务器代码中的进程process换成thread线程的时候。多个客户机的进程Id还不同,这就奇怪了,线程不应该都在一个进程Id里吗
关于python 多进程异步打印相同值的问题
我使用该程序,创建了3个进程的线程池,但是打印结果出现了,队列容量重复的问题: ![图片说明](https://img-ask.csdn.net/upload/202002/06/1580980058_812697.png) 这个该怎么解决 代码如下: ``` from multiprocessing import Pool, Manager, cpu_count import time num_list = [] for i in range(10): num_list.append(i) start_time = time.time() def crawler(q, index): Process_id = "Process"+ str(index) while not q.empty(): time.sleep(1) num = q.get(timeout=1) print(Process_id, num, q.qsize()) if __name__ == '__main__': manager = Manager() num_queue = manager.Queue(150000) # 填充队列 for num in num_list: num_queue.put(num) lock = manager.Lock() # 创建线程池为10个 pool = Pool(processes=3) # 创建的任务数量 for i in range(3): pool.apply_async(func=crawler, args=(num_queue, i)) print("Started procesess") pool.close() pool.join() print("Main Process end") end_time = time.time() print("时间为"+str(end_time-start_time)) ```
python多进程不退出问题怎么解决
代码如下: from multiprocessing import Manager, Pool def num1(): global num for i in range(1000): num += 1 q.put(num, False) q.put(None) def num2(): global num while True: if not q.empty(): result = q.get() if result is None: break else: print(result) print(1111111111111) if __name__ == '__main__': num = 0 q = Manager().Queue() p = Pool(5) for i in range(1): p.apply_async(num1) for i in range(3): p.apply_async(num2) p.close() p.join() ![图片说明](https://img-ask.csdn.net/upload/201912/13/1576201544_525030.png) while True循环退出了,但是进程没有退出。
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员变量,局部变量都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.数据库表设计 列名 中文名称 数据类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
相关热词 c# id读写器 c#俄罗斯方块源码 c# linq原理 c# 装箱有什么用 c#集合 复制 c# 一个字符串分组 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图
立即提问