我在Webfaction上托管的生产服务器上的Django应用程序工作正常,直到我在将更改推送到settings.py文件后尝试重新启动它.我跑了
apache2/bin/restart
Run Code Online (Sandbox Code Playgroud)
照常.然后我尝试在浏览器上访问我的应用程序,然后我得到了504网关超时.我查看了mod_wsgi日志并看到了这个:
[Thu Nov 03 23:46:53.605625 2016] [wsgi:error] [pid 8027:tid 139641332168448]
[client 127.0.0.1:34570] Timeout when reading response headers from daemon
process 'myapp' : /home/<me>/webapps/<myapp>/<ProjectName>/<myapp>/wsgi.py
Run Code Online (Sandbox Code Playgroud)
这是什么意思,我该如何解决?我在settings.py文件中唯一更改的是移动一些变量名称.我仍然可以成功地与应用程序进行交互
python2.7 manage.py shell
Run Code Online (Sandbox Code Playgroud)
但我不能在网上找到它,也不能使用API.
编辑:这是我的wsgi.py文件:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<myapp>.settings")
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud) 我正在阅读Django REST Framework,我有一个使用SerializerMethodField()与getter序列化的模型.
但是,当我POST到此端点时,我希望能够设置此字段,但这不起作用,因为正如上面的文档所示,您无法写入SerializerMethodField.Django REST中是否有任何方法可以为您定义自定义getter方法的序列化器字段,以及自定义setter方法?
编辑:这是我正在尝试做的事情的来源.客户与用户具有一对一的关系.
class ClientSerializer(serializers.ModelSerializer):
email = serializers.SerializerMethodField()
def create(self, validated_data):
email = validated_data.get("email", None) # This doesn't work because email isn't passed into validated_data because it's a readonly field
# create the client and associated user here
def get_email(self, obj):
return obj.user.email
class Meta:
model = Client
fields = (
"id",
"email",
)
Run Code Online (Sandbox Code Playgroud) 我试图通过保存我的模型来保持预测模型状态
joblib.dump(model, path)
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果我这样做两次,第二组生成的 .pkl_* 文件并不会真正覆盖旧的文件,所以当我去调用 joblib.load(path) 时,我无法确定它实际上是加载正确的模型。
如何使 joblib.dump 在保存新文件之前销毁旧的 .pkl_* 文件?
这可能是一个非常基本的问题,但到目前为止,我在google搜索后无法在线找到我的问题的答案.我有一个firebase web应用程序,其数据结构非常简单.最初,它是空的,像这样:
fireRef {
}
Run Code Online (Sandbox Code Playgroud)
我希望能够添加键值对,其中键由用户创建,值只是一些文本.例如,用户将输入他们的名称作为键,并将值作为他们的年龄.然后我想将该数据发送到服务器并让firebase现在看起来像这样:
fireRef {
John : 25,
}
Run Code Online (Sandbox Code Playgroud)
我可以通过以下方式完成这一项:
var name = getUserName();
var age = getUserAge();
var node = {};
node[name] = age;
fireRef.set(node);
Run Code Online (Sandbox Code Playgroud)
但是,我希望多个人能够做到这一点.当我尝试将新人添加到服务器时,旧的"John:25"对变为红色并消失,只留下新的键值对.
如何保持两者并维护一堆关键值对的数据集?
使用人口普查数据,我想用两列("工作类"和"原生国家")中的NaN替换这两列的相应模式.我可以轻松获得模式:
mode = df.filter(["workclass", "native-country"]).mode()
Run Code Online (Sandbox Code Playgroud)
返回一个数据帧:
workclass native-country
0 Private United-States
Run Code Online (Sandbox Code Playgroud)
然而,
df.filter(["workclass", "native-country"]).fillna(mode)
Run Code Online (Sandbox Code Playgroud)
并不能取代与任何每一列的NaN的,更何况是对应于列模式.有没有顺利的方法来做到这一点?
我正在Keras建立一个用于回归任务的小型神经网络,我想使用与scikit-learn RandomForestRegressor相同的精度度量:
系数R ^ 2定义为(1-u/v),其中u是平方的回归和((y_true-y_pred)**2).sum()和v是剩余的平方和((y_true - y_true.mean())**2).sum().
这是一个方便的指标,因为它显示的值高达1.0(类似于分类准确度百分比).我对Keras后端的使用是否符合我想要的准确度指标?
def create_model():
model = Sequential()
model.add(Dense(10,
input_dim=X.shape[1],
activation="relu"))
model.add(Dense(10,
activation="relu"))
model.add(Dense(1))
# Compile model
model.compile(loss="mean_squared_error", optimizer="adam", metrics=[det_coeff])
return model
# Is this computing the right thing?
def det_coeff(y_true, y_pred):
u = K.sum(K.square(y_true - y_pred))
v = K.sum(K.square(y_true - K.mean(y_true)))
return K.ones_like(v) - (u / v)
Run Code Online (Sandbox Code Playgroud)
这看起来有效,因为没有任何错误和度量标准随着时间的推移逐渐增加,但我想确定我已经正确地实现了度量标准.我是Keras后端功能的新手.
我正在尝试遵循此处的Openai 微调指南。
我跑:
pip install --upgrade openai
Run Code Online (Sandbox Code Playgroud)
哪个安装没有任何错误。
但即使重新启动终端后,我仍然得到
zsh: command not found: openai
Run Code Online (Sandbox Code Playgroud)
这是 echo $PATH 的输出:
/bin:/usr/bin:/usr/local/bin:/Users/nickrose/Downloads/google-cloud-sdk/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Run Code Online (Sandbox Code Playgroud)
这是 python 的输出:
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
有关如何解决此问题的任何提示?我使用的是 MacOS Big Sur 11.6。
为什么这两行产生不同的结果?
>>> import pytz
>>> from datetime ipmort datetime
>>> local_tz = pytz.timezone("America/Los_Angeles")
>>> d1 = local_tz.localize(datetime(2015, 8, 1, 0, 0, 0, 0)) # line 1
>>> d2 = datetime(2015, 8, 1, 0, 0, 0, 0, local_tz) # line 2
>>> d1 == d2
False
Run Code Online (Sandbox Code Playgroud)
差异的原因是什么,我应该用哪个来定位日期时间?
是否有可能继续训练Keras估计器,其中包含所有超参数(包括降低学习率)和从先前时期保存的权重,就像在scikit中学习warm_start参数一样?像这样的东西:
estimator = KerasRegressor(build_fn=create_model, epochs=20, batch_size=40, warm_start=True)
Run Code Online (Sandbox Code Playgroud)
具体来说,热启动应该这样做:
warm_start:bool,optional,default False设置为True时,重用上一次调用的解决方案以适合初始化,否则,只需擦除以前的解决方案.
在Keras有类似的东西吗?
我想知道在 Django 中哪个查询更快。我有一个位置模型和一个用户模型。用户是位置的外键,因此每个位置都可以有一个“locationuser_set”属性。
如果我有数千个用户,哪个更快?
查询 1:
location = Location.objects.get(id=<id>)
users = location.user_set.all()
Run Code Online (Sandbox Code Playgroud)
查询 2:
users = User.objects.filter(location_id=<id>)
Run Code Online (Sandbox Code Playgroud) 我对Algorithmia还很陌生,但我已经使用了一些 scikit-learn,并且在我用 joblib 对其进行训练后,我知道如何坚持我的机器学习模型:
from sklearn.externals joblib
model = RandomForestRegressor()
# Train the model, etc
joblib.dump(model, "prediction/model/model.pkl")
Run Code Online (Sandbox Code Playgroud)
现在我想托管我的 ML 模型并使用 Algorithmia 将其称为服务,但我不知道如何读回模型。我在 Algorithmia 中创建了一个名为“testcollection”的集合,其中包含一个名为“model.pkl”的文件,它是 joblib.dump 调用的结果。根据文档,这意味着我的文件应该位于
数据://(用户名)/testcollection/model.pkl
我想使用 joblib.load 从文件中读取该模型。这是我目前在 Algorithmia 中的算法:
import Algorithmia
def apply(input):
client = Algorithmia.client()
f = client.file("data://(username)/testcollection/model.pkl")
print(f.path)
print(f.url)
print(f.getName())
model = joblib.load(f.url) # Or f.path, both don't work
return "empty"
Run Code Online (Sandbox Code Playgroud)
这是输出:
(username)/testcollection/model.pkl
/v1/data/(username)/testcollection/model.pkl
model.pkl
Run Code Online (Sandbox Code Playgroud)
它在 joblib.load 行出错,给出“没有这样的文件或目录(我放入的任何路径)”
这是我在调用 joblib.load 时尝试过的所有路径/网址:
如何使用 joblib 从文件加载模型?我会以错误的方式解决这个问题吗?
我正在对基于Django的Webfaction托管的服务器进行最后的润色。它具有REST API,可将内容传递到移动设备,每隔几分钟就会接受来自其他来源的POST请求。到目前为止,POST部分运行良好-到目前为止,它已经接受一周的数据了,没有重大问题。
但是,我担心发布移动应用程序时会发生什么-我希望有大量的用户,并且如果我的API无法处理所有GET请求的负载,我也不想遇到死机。
如何对Django API进行负载测试?在线上是否有工具可以一次模拟数百个GET请求,还是应该从头开始进行测试?
我正在尝试为我的pi安装nmap,我这样做了:
sudo apt-get install nmap
Run Code Online (Sandbox Code Playgroud)
这似乎工作得很好.但是当我打开python会话并尝试导入nmap时:
>>> import nmap
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named nmap
Run Code Online (Sandbox Code Playgroud)
这是非常奇怪的,因为我安装得很好,或者至少我认为.任何想法为什么会这样?
python ×11
django ×4
scikit-learn ×4
joblib ×2
keras ×2
webfaction ×2
data-science ×1
datetime ×1
firebase ×1
javascript ×1
mod-wsgi ×1
mysql ×1
nmap ×1
numpy ×1
openai-api ×1
pandas ×1
performance ×1
pickle ×1
python-2.7 ×1
pytz ×1
raspberry-pi ×1
rest ×1
serializer ×1
tensor ×1
tensorflow ×1
timezone ×1