我有一个如下的字典:
mydict = {'a' : 'apple',
'b' : 'bobb',
'c' : {
'd' : 'dog'
},
'e' : 'dog'
}
Run Code Online (Sandbox Code Playgroud)
假设我想找到值为' dog'的所有键.在嵌套的情况下,键应该用点分隔.
所以输出应该是一个列表 ['e', 'c.d']
现在,如果我在python 3中编写下面的代码,它只输出' e'.
print(list(mydict.keys())[list(mydict.values()).index('dog')])
Run Code Online (Sandbox Code Playgroud)
如何获取嵌套密钥?
根据上一篇文章,我有一个 AWS Glue Pythonshell 作业,需要从通过 boto3 调用传递给它的参数中检索一些信息。
我的胶水工作名称是test_metrics
Glue pythonshell 代码如下所示
import sys
from awsglue.utils import getResolvedOptions
args = getResolvedOptions(sys.argv,
['test_metrics',
's3_target_path_key',
's3_target_path_value'])
print ("Target path key is: ", args['s3_target_path_key'])
print ("Target Path value is: ", args['s3_target_path_value'])
Run Code Online (Sandbox Code Playgroud)
调用此作业的 boto3 代码如下:
glue = boto3.client('glue')
response = glue.start_job_run(
JobName = 'test_metrics',
Arguments = {
'--s3_target_path_key': 's3://my_target',
'--s3_target_path_value': 's3://my_target_value'
}
)
print(response)
Run Code Online (Sandbox Code Playgroud)
200在本地计算机中运行 boto3 代码后,我看到了响应,但 Glue 错误日志告诉我:
test_metrics.py: error: the following arguments are required: --test_metrics
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
我有一个我们自己训练的 Keras/tensorflow 模型,它可以进行图像相关的预测。我已经按照这个训练有素的 keras 模型教程在 Sagemaker 中部署模型,并且可以调用端点进行预测。
现在在我的客户端代码中,在通过调用 Sagemaker 端点进行预测之前,我需要下载图像并进行一些预处理。我想在 SageMaker 中完成整个过程,而不是在客户端执行此操作。我怎么做?
看来我需要更新train.py这里提到的入口点python代码:
sagemaker_model = TensorFlowModel(model_data = 's3://' + sagemaker_session.default_bucket() + '/model/model.tar.gz',
role = role,
entry_point = 'train.py')
Run Code Online (Sandbox Code Playgroud)
其他文章表明我需要覆盖input_fn函数来捕获预处理。但是这些文章指的是使用 MXNet 框架时使用的步骤。但是我的模型是基于 Keras/tensorflow 框架的。
所以我不确定如何覆盖该input_fn功能。任何人都可以请建议吗?
我正在使用 Tensorflow2.1.1并尝试使用 Attention 构建序列到序列模型。
latent_dim = 300
embedding_dim=100
batch_size = 128
# Encoder
encoder_inputs = tf.keras.Input(shape=(None,), dtype='int32')
#embedding layer
enc_emb = tf.keras.layers.Embedding(x_voc, embedding_dim,trainable=True)(encoder_inputs)
#encoder lstm 1
encoder_lstm = tf.keras.layers.LSTM(latent_dim,return_sequences=True,return_state=True,dropout=0.4,recurrent_dropout=0.4)
encoder_output, state_h, state_c = encoder_lstm(enc_emb)
print(encoder_output.shape)
# Set up the decoder, using `encoder_states` as initial state.
decoder_inputs = tf.keras.Input(shape=(None,), dtype='int32')
#embedding layer
dec_emb_layer = tf.keras.layers.Embedding(y_voc, embedding_dim,trainable=True)
dec_emb = dec_emb_layer(decoder_inputs)
decoder_lstm = tf.keras.layers.LSTM(latent_dim, return_sequences=True, return_state=True,dropout=0.4,recurrent_dropout=0.2)
decoder_output,decoder_fwd_state, decoder_back_state = decoder_lstm(dec_emb,initial_state=[state_h, state_c])
# Attention layer
attn_out, attn_states = tf.keras.layers.Attention()([encoder_output, decoder_output])
# Concat …Run Code Online (Sandbox Code Playgroud) 我在python 3.x中有一个列表列表:
deliveryData=[[1,5,3],[2,7,8],[8,10,5]]
Run Code Online (Sandbox Code Playgroud)
我想比较/操作当前列表(例如[2,7,8])的单个项目与之前的列表(例如[1,5,3]).我怎么做?
使用以下示例代码测试此功能:
deliveryData=[[1,5,3],[2,7,8],[8,10,5]]
for data in deliveryData[1:]:
print(data)
print(data[-1])
Run Code Online (Sandbox Code Playgroud)
当我在列表中[1,5,3]时data[-1],我想我可以访问列表,[2,7,8]但这是不对的.
有人可以提供任何建议吗?
我正在Mac 中使用brew安装libusb
brew 安装 libusb
链接步骤失败如下
Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local
Could not symlink lib/libusb-1.0.0.dylib
Target /usr/local/lib/libusb-1.0.0.dylib already exists.
You may want to remove it: rm '/usr/local/lib/libusb-1.0.0.dylib'
To force the link and overwrite all conflicting files: brew link
--overwrite libusb
Run Code Online (Sandbox Code Playgroud)
所以我删除了现有的 libusb
须藤rm'/usr/local/lib/libusb-1.0.0.dylib'
然后做了一个链接
酿造链接--覆盖libusb
链接不起作用,下面显示错误
错误:无法符号链接 lib/libusb-1.0.0.dylib
/usr/local/lib 不可写。
如果我尝试
须藤酿造链接--覆盖libusb
相反,这也不起作用。我错过了什么?
我使用的是 OSX El Capitan 版本 10.11.4 (15E65)
我收到错误消息
non-aggregate type 'string' (aka 'basic_string<char, char_traits<char>, allocator<char> >') cannot be initialized with an initializer list
Run Code Online (Sandbox Code Playgroud)
在Eclipse Neon的C++代码中使用以下作为全局变量.
string boardStr = {". . . . . . . . B . . . L L L . . . . . . . . . . . . . . . . .",
". . . . . . . . B . . . L L L . . . . . . . . . . . . …Run Code Online (Sandbox Code Playgroud) 我应用一个返回浮动的移动平均逻辑.我将该float转换为int,然后将其用于在OpenCV中绘制线但是低于错误
ValueError: cannot convert float NaN to integer
Run Code Online (Sandbox Code Playgroud)
示例代码
def movingAverage(avg, new_sample, N=20):
if (avg == 0):
return new_sample
avg -= avg / N;
avg += new_sample / N;
return avg;
x1 = int(avgx1) #avgx1 is returned from the movingaverage function
y1 = int(avgy1)
x2 = int(avgx2)
y2 = int(avgy2)
cv2.line(img, (x1, y1), (x2, y2), [255,255,255], 12)
Run Code Online (Sandbox Code Playgroud)
有关如何解决的任何建议?
我需要从 NodeJS 服务代码调用 python 函数。我检查了这个链接并写在下面的 nodeJS 代码
const express = require('express')
const app = express()
let runPy = new Promise(function(success, nosuccess) {
const { spawn } = require('child_process');
const pyprog = spawn('python', ['./ml.py']);
pyprog.stdout.on('data', function(data) {
success(data);
});
pyprog.stderr.on('data', (data) => {
nosuccess(data);
});
});
app.get('/', (req, res) => {
res.write('welcome\n');
runPy.then(function(testMLFunction) {
console.log(testMLFunction.toString());
res.end(testMLFunction);
});
})
app.listen(4000, () => console.log('Application listening on port 4000!'))
Run Code Online (Sandbox Code Playgroud)
假设我有一个示例 python 代码,ml.py如下所示
def testMLFunction():
return "hello from Python"
Run Code Online (Sandbox Code Playgroud)
现在,当我运行 nodeJS …
我projects在 postgreSQL 中有一个表,如下所示
id. project_name. col3. col4
1111. test. ... ...
Run Code Online (Sandbox Code Playgroud)
id仅当id不存在时,我才想为新插入一个新行。所以我写了下面的查询
INSERT INTO projects(id, project_name)
VALUES("1234", "Test_Project")
ON CONFLICT (id)
DO NOTHING
Run Code Online (Sandbox Code Playgroud)
但它给我一个错误
Query 1 ERROR: ERROR: column "1234" does not exist
LINE 2: VALUES("1234", "Test_Project_...
Run Code Online (Sandbox Code Playgroud)
请建议。
** 编辑**
id表中的列是一个 uuid 并且不是唯一的。可以有多个具有相同 ID 的行。根据 GMB 的建议,我尝试了以下
INSERT INTO projects(id, project_name)
VALUES('1234', 'Test_Project')
ON CONFLICT (create unique index on projects(id))
DO NOTHING
Run Code Online (Sandbox Code Playgroud)
我得到以下错误
Query 1 ERROR: ERROR: syntax error at or near "create"
LINE …Run Code Online (Sandbox Code Playgroud) python ×6
keras ×2
python-3.x ×2
tensorflow ×2
aws-glue ×1
boto3 ×1
c++ ×1
eclipse ×1
eclipse-neon ×1
homebrew ×1
libusb ×1
nested ×1
node.js ×1
opencv ×1
postgresql ×1
sql ×1
sql-insert ×1
sql-update ×1
string ×1