我需要在不同的服务器上不断向大约 150 个 API 发出许多请求。我跟交易工作,时间很关键,我不能浪费1毫秒。
我发现的解决方案和问题是:
也许是使用所有这些的解决方案。
如果 Python 中没有真正好的解决方案,我应该用什么来代替?
# Using Asyncio
import asyncio
import requests
async def main():
loop = asyncio.get_event_loop()
future1 = loop.run_in_executor(None, requests.get, 'http://www.google.com')
future2 = loop.run_in_executor(None, requests.get, 'http://www.google.co.uk')
response1 = await future1
response2 = await future2
print(response1.text)
print(response2.text)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
# Using Threads
from threading import Thread
def do_api(url):
#...
#...
#...
#...
for i in range(50):
t = Thread(target=do_apis, args=(url_api[i],))
t.start()
Run Code Online (Sandbox Code Playgroud) Tornado宣称自己是"一个相对简单,无阻塞的 Web服务器框架",旨在解决C10k问题.但是,看看包装MySQLdb的数据库包装器,我遇到了以下代码:
def _execute(self, cursor, query, parameters):
try:
return cursor.execute(query, parameters)
except OperationalError:
logging.error("Error connecting to MySQL on %s", self.host)
self.close()
raise
Run Code Online (Sandbox Code Playgroud)
据我知道的MySQLdb的,它是建立在顶部的呼叫libmysqlclient,被拦截.
我是否正确地认为长时间运行的查询会导致整个Tornado服务器无响应直到它完成或代码上有魔力?
我正试图在Anaconda的Numba软件包中使用cuBLAS功能并遇到问题.我需要输入矩阵为C顺序.输出可以是Fortran顺序.
我可以在这里运行随包提供的示例脚本.该脚本有两个功能,gemm_v1和gemm_v2.在gemm_v1,用户必须以Fortran顺序创建输入矩阵.在gemm_v2,它们可以传递给GEMM的cuda实现并转换到设备上.我可以使用这些示例来处理方形矩阵.但是,我无法弄清楚如何gemm_v2使用非方形输入矩阵.有没有办法使用非正方形的C阶输入矩阵?
注意:
理想情况下,在调用GEMM以用于其他计算之后,输入和输出矩阵都将保留在设备上(这是迭代方法的一部分).
我想我所有的dataframes,无论他们是从构造函数重载的任何一个建立起来的,无论他们是来自衍生.read_csv(),.read_xlsx(),.read_sql(),或任何其他方法,使用新的可为空的Int64数据类型为默认dtype将所有整数,而不是int64。
如果没有一种“不错”的方法,我愿意在任何程度上做到疯狂,包括子类化DataFrame或Series类,以及重新实现任意数量的方法和构造函数属性等。
我的问题是,可以做到吗?如果是这样,我将如何处理?
任何人都可以告诉zmq.sockets的类型是什么?
在什么情况下可以使用这些插座?
我需要的主要区别是zmq.DEALER,并zmq.ROUTER在Python zeroMQ?
哪种类型的插座可以使用这些插座?
我遇到的问题是我的超参数svm.SVC()太宽,以至于GridSearchCV()永远不会完成!一个想法是改为使用RandomizedSearchCV().但同样,我的数据集相对较大,因此500次迭代需要大约1小时!
我的问题是,为了阻止浪费资源,GridSearchCV(或RandomizedSearchCV)的一个好的设置(就每个超参数的值范围而言)是什么?
换句话说,如何判断C100以上的值是否有意义和/或1的步长既不大也不小?很感谢任何形式的帮助.这是我目前正在使用的设置:
parameters = {
'C': np.arange( 1, 100+1, 1 ).tolist(),
'kernel': ['linear', 'rbf'], # precomputed,'poly', 'sigmoid'
'degree': np.arange( 0, 100+0, 1 ).tolist(),
'gamma': np.arange( 0.0, 10.0+0.0, 0.1 ).tolist(),
'coef0': np.arange( 0.0, 10.0+0.0, 0.1 ).tolist(),
'shrinking': [True],
'probability': [False],
'tol': np.arange( 0.001, 0.01+0.001, 0.001 ).tolist(),
'cache_size': [2000],
'class_weight': [None],
'verbose': [False],
'max_iter': [-1],
'random_state': [None],
}
model = grid_search.RandomizedSearchCV( n_iter = 500,
estimator = svm.SVC(),
param_distributions = parameters,
n_jobs = 4, …Run Code Online (Sandbox Code Playgroud) 最新版本matplotlib自动创建下的导航按钮graph.然而,我在网上看到的例子都只是展示了如何创建一个图表,从而使按键[Next]和[Previous]无用.如何绘制多个图形并使用这些按钮?
例如,我想使graph对sin()和cos()从0度360程度.
现在我这样做:
import scipy
from matplotlib import pyplot
DataRange = range(0, 360)
DataRange = map(scipy.deg2rad, DataRange)
Data1 = map(scipy.sin, DataRange)
Data2 = map(scipy.cos, DataRange)
pyplot.plot(Data1)
pyplot.show() # <--- if I exclude this
pyplot.plot(Data2)
pyplot.show()
Run Code Online (Sandbox Code Playgroud)
sin()将显示该图表.当我关闭窗口时,cos将显示图表.如果我排除第一个pyplot.show(),则两个都将显示在同一图中.
当我按下"下一步"按钮时如何显示第二个图表?
我使用tensorflow的imageNet训练模型来提取最后一个池层的特征作为新图像数据集的表示向量.
该模型预测新图像如下:
python classify_image.py --image_file new_image.jpeg
Run Code Online (Sandbox Code Playgroud)
我编辑了主要功能,以便我可以获取图像文件夹并立即返回所有图像的预测,并将特征向量写入csv文件.我是这样做的:
def main(_):
maybe_download_and_extract()
#image = (FLAGS.image_file if FLAGS.image_file else
# os.path.join(FLAGS.model_dir, 'cropped_panda.jpg'))
#edit to take a directory of image files instead of a one file
if FLAGS.data_folder:
images_folder=FLAGS.data_folder
list_of_images = os.listdir(images_folder)
else:
raise ValueError("Please specify image folder")
with open("feature_data.csv", "wb") as f:
feature_writer = csv.writer(f, delimiter='|')
for image in list_of_images:
print(image)
current_features = run_inference_on_image(images_folder+"/"+image)
feature_writer.writerow([image]+current_features)
Run Code Online (Sandbox Code Playgroud)
它适用于大约21张图像但随后因以下错误而崩溃:
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1912, in as_graph_def
raise ValueError("GraphDef cannot be larger than 2GB.")
ValueError: GraphDef …Run Code Online (Sandbox Code Playgroud) 我是消息队列的新手,现在我ZeroMQ在我的Linux服务器上使用.我PHP用来写客户端和服务器.这主要用于处理推送通知.
正如他们所展示的那样,我在单个I/O线程实例上使用基本的REQ- REP形式 - 通信模式ZMQContext.
这是最小化的zeromqServer.php代码:
include("someFile.php");
$context = new ZMQContext(1);
// Socket to talk to clients
$responder = new ZMQSocket($context, ZMQ::SOCKET_REP);
$responder->bind("tcp://*:5555");
while (true) {
$request = $responder->recv();
printf ("Received request: [%s]\n", $request);
// -----------------------------------------------------------------
// Process push notifications here
//
sleep (1);
// -----------------------------------------------------------------
// Send reply back to client
$responder->send("Basic Reply");
}
Run Code Online (Sandbox Code Playgroud)
这是一个最小化的ZeroMQ 客户端:
$context = new ZMQContext();
// Socket to talk to server …Run Code Online (Sandbox Code Playgroud) 我有一个带库的存储库.它可以成功克隆.
$ git clone file:////remote/repo/library
$ cd library
$ composer validate
./composer.json is valid, but with a few warnings
Run Code Online (Sandbox Code Playgroud)
但似乎这个转座不能通过作曲家包含来使用.
...
"repositories": [
{
"type": "git",
"url": "file:////remote/repo/library"
}]
...
Run Code Online (Sandbox Code Playgroud)
试图安装
$ composer install -vvv
...
Loading composer repositories with package information
Executing command (//remote/repo/library): git show-ref --tags
Executing command (//remote/repo/library): git branch --no-color --no-abbrev -v
Executing command (//remote/repo/library): git branch --no-color
Executing command (//remote/repo/library): git show "master":composer.json
[Composer\Repository\InvalidRepositoryException]
No valid composer.json was found in any branch or tag of …Run Code Online (Sandbox Code Playgroud) python ×6
php ×2
sockets ×2
zeromq ×2
anaconda ×1
composer-php ×1
concurrency ×1
cublas ×1
git ×1
linux ×1
matplotlib ×1
mysql ×1
nonblocking ×1
numba ×1
numpy ×1
pandas ×1
python-2.7 ×1
python-3.x ×1
request ×1
scikit-learn ×1
svm ×1
tensorflow ×1
tornado ×1
windows ×1