所以我有一个 Flask Web 应用程序,它将公开一些深度学习模型。
我构建了图像,一切正常。
问题是这张图片的大小是5.58GB!这有点荒谬。
我有一些在构建过程中复制的深度学习模型,我认为它们可能是罪魁祸首,但它们的大小总和并没有超过,300MB
所以绝对不是它。
在检查历史记录和每层的大小后,我发现了这一点:
RUN /bin/sh -c pip install -r requirements.txt
占用771MB。RUN /bin/sh -c pip install torch==1.10.2
占用2.8GB!RUN /bin/sh -c apt-get install ffmpeg libsm6 libxext6
占用400MB。那么如何在保持图像大小合理的同时合并这些库呢?在 python 中部署机器学习模型时,可以使用这些大小的图像吗?
下面是root directory
:
Dockerfile
:
FROM python:3.7.13
WORKDIR /app
COPY ["rdm.pt", "autosort_model.pt", "rotated_model.pt", "yolov5x6.pt", "/app/"]
RUN pip install torch==1.10.2
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
RUN apt-get update
RUN apt-get install ffmpeg libsm6 libxext6 …
Run Code Online (Sandbox Code Playgroud) 作为python的新手,我不太清楚为什么我会得到不一致的结果.我注册了一个用户,我的表中的密码最终成为哈希版本.当用户更新其密码时,表中的密码最终为未散列的版本.显然,我想要哈希版本.我究竟做错了什么?(如果重要的话,我正在使用SQLAlchemy和mysql.)
我有以下内容:
def hash_password(password):
blah, blah, blah # hash my password here
return hashed_password
class User(Base):
__tablename__ = 'mytable'
email = Column('email')
_password = Column('password')
def _get_password(self):
return self._password
def _set_password(self, password):
self._password = hash_password(password)
password = property(_get_password, _set_password)
password = synonym('_password', descriptor=password)
def __init__(self, password="", email=""):
self.email = email
self.password = password
@classmethod
def register(cls, email, password):
return DBSession.add(User(email=email,password=password)) # this correctly hashes the password
@classmethod
def update(cls, email, password):
return DBSession.query(cls).filter(cls.email == email).update({'password': password}) #password ends up being …
Run Code Online (Sandbox Code Playgroud) 我有一个FORTRAN代码,我需要在服务器上运行.我注意到两台机器的结果有点不同.调查一下,我了解到差异从一个返回real
值的函数变为一个double precision
变量.在locale机器上我使用旧编译器(gnu f95 4.1.2),在远程机器上我使用ifort.
我想以JSON的形式返回查询结果.我正在使用以下路由将一个模型实例作为JSON对象返回.
@mod.route('/autocomplete/<term>', methods=['GET'])
def autocomplete(term):
country = Country.query.filter(Country.name_pt.ilike('%'+ term + '%')).first()
country_dict = country.__dict__
country_dict.pop('_sa_instance_state', None)
return jsonify(json_list=country_dict)
Run Code Online (Sandbox Code Playgroud)
如果我使用该first()
方法,此代码很有效.但是,我需要使用它all()
来获得所有结果.当我这样做时,我得到以下错误.
country_dict = country.__dict__
AttributeError: 'list' object has no attribute '__dict__'
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能将整个结果列表作为JSON返回?
我已经看了很多关于这个的文章
if __name__ == '__main__'
Run Code Online (Sandbox Code Playgroud)
但没有得到..我将与您分享代码,请您简要介绍一下。
我创建了一个文件“ ab.py”
def a():
print('A function in ab file');
a()
Run Code Online (Sandbox Code Playgroud)
第二个文件是“ xy.py”
import ab
def b():
print('b function')
def x(): print ('s');
x()
if __name__ == "__main__" :b()
Run Code Online (Sandbox Code Playgroud)
当我执行此代码时,此输出即将到来
A function in ab file
s
b function
Run Code Online (Sandbox Code Playgroud)
现在,我想知道这是什么意思,实际上是在做什么代码,我们为什么要实现它?没有它,我们的代码也可以工作
if __name__ == "__main__" :b()
Run Code Online (Sandbox Code Playgroud) 我知道该before_request()
功能是在执行附加到路由的功能之前执行的。
我的代码检查用户是否已登录该before_request()
函数,如果不是,则将其重定向到索引页面。但是,重定向不起作用。这是我的代码:
@app.before_request
def before_request():
if(
(
request.endpoint != 'index' or
request.endpoint != 'home' or
request.endpoint != ''
)
and 'logged_in' not in session
):
print("NOT LOGGED IN")
redirect(url_for('index'))
Run Code Online (Sandbox Code Playgroud)
这会在终端中显示“ NO LOGGED IN”,但不会重定向。如何正确重定向?
from flask.ext.wtf import Form
from flask import send_from_directory
from wtforms import StringField, BooleanField
from wtforms import SelectField
import os
from os import listdir
from os.path import isfile, join
crewPath = ("/myproject/app/static/Crews")
filenamesCrew = [f for f in listdir(crewPath) if isfile(join(crewPath,f)) ]
class userInput(Form):
json_fileCrew = SelectField(u"json_fileCrew", choices=[(f, f) for f in filenamesCrew])
def get_data(self):
json = send_from_directory (crewPath, self.json_fileCrew.data)
return json
@app.route('/CastCrew', methods=['GET', 'POST'])
def castCrew():
form = userInput(request.form["crewYear"])
return render_template('CastCrew.html', title = 'Cast Crew View', form = form)
@app.route("/data", …
Run Code Online (Sandbox Code Playgroud) 我有一个函数,它接受page_size
和skip
作为参数.如果page_size = 10
和skip = 2
,我想从第21行开始选择10行.我认为这与LIMIT
和OFFSET
.我如何在SQLAlchemy中执行此操作?
我在Flask模板中嵌入了散景图.该应用程序使用主样式表,而图表需要自己的样式.
主样式表泄漏到图表中并更改其外观.如何将不同的样式应用于模板中的不同部分,以便只有一种样式处于活动状态?
有关更多代码和图像,请参阅Bokeh邮件列表中的我的问题.
这是拉入图表对象的模板代码. resources
,, script
和div
是图表库生成的对象元素.
{% extends "base.html" %}
{% block content %}
<frame>
<head>
<meta charset='utf-8' />
<meta http-equiv='content-type' content='text/html; charset=utf-8' />
{{ resources|indent(4)|safe }}
{{ script|indent(4)|safe }}
</head>
<body>
{{ div|indent(4)|safe }}
</body>
</frame>
{% endblock %}
Run Code Online (Sandbox Code Playgroud) 我有一个非常大的类JSON文件,但它没有使用正确的JSON语法:没有引用对象键.我想编写一个脚本来修复文件,以便我可以加载它json.loads
.
我需要匹配后跟冒号的所有单词,并用引用的单词替换它们.我认为正则表达式是\w+\s*:
我应该使用的re.sub
,但我不确定如何做到这一点.
如何获取以下输入并获得给定的输出?
# In
{abc : "xyz", cde : {}, fgh : ["hfz"]}
# Out
{"abc" : "xyz", "cde" : {}, "fgh" : ["hfz"]}
# In
{
a: "b",
b: {
c: "d",
d: []
},
e: "f"
}
# Out
{
"a": "b",
"b": {
"c": "d",
"d": []
},
"e": "f"
}
Run Code Online (Sandbox Code Playgroud)