我正在使用SQLAlchemy Core运行一些独立的语句。 这些陈述用于分隔表格和不相关的。因此,我不能使用标准的sql_conn.execute(query1)
sql_conn.execute(query2)
和多个传递的词典。现在,我这样做:
def plot_stuff(inputs, outputs, losses, net_func, n_hidden):
fig,axes = plt.subplots(1,2,figsize=(12,6))
axes[0].plot(np.arange(losses.shape[0])+1, losses)
axes[0].set_xlabel('iteration')
axes[0].set_ylabel('loss')
axes[0].set_xscale('log')
axes[0].set_yscale('log')
x,y = np.mgrid[inputs[:,0].min():inputs[:,0].max():51j, inputs[:,1].min():inputs[:,1].max():51j]
z = net_func( np.c_[x.flatten(), y.flatten()] ).reshape(x.shape)
axes[1].contourf(x,y,z, cmap=plt.cm.RdBu, alpha=0.6)
axes[1].plot(inputs[outputs==0,0], inputs[outputs==0,1], 'or')
axes[1].plot(inputs[outputs==1,0], inputs[outputs==1,1], 'sb')
axes[1].set_title('Percent missclassified: %0.2f%%' % (((net_func(inputs)>0.5) != outputs.astype(np.bool)).mean()*100))
fig.suptitle('Shallow net with %d hidden units'%n_hidden)
plt.show()
if __name__=='__main__':
n_hidden = 40
inputs, outputs = gen_data(n_samples_per_class=100)
losses, net_func = train_neural_network(inputs=inputs, outputs=outputs, n_hidden=n_hidden, n_iters=int(2000), learning_rate=0.1)
plot_stuff(inputs, outputs, losses, net_func, n_hidden)
有什么方法可以一次性运行这些而不需要两次来回分配?我使用的是MySQL 5.7和Python 2.7.11。
答案 0 :(得分:1)
一次运行两个查询既不明智也不实际。
通过" SQL注入"
来让黑客以另一种方式做出讨厌的事情是不明智的。另一方面,它是可能的,但不一定是实用的。您将创建一个存储过程,其中包含任意数量的相关(或不相关)查询。然后CALL
那个程序。有些事情可能使其变得不切实际:
如果您与MySQL服务器在同一台计算机上,则往返延迟无关紧要。即使两台服务器位于同一数据中心,通常也可以忽略它。当客户端和服务器长距离分开时,延迟变得很重要。对于跨大西洋延迟,我们谈论超过100毫秒。巴西到中国的时间约为250毫秒。 (很高兴我们没有住在木星上。)