社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Mostafa Hussein

Mostafa Hussein 最近创建的主题
Mostafa Hussein 最近回复了
6 年前
回复了 Mostafa Hussein 创建的主题 » 错误:Dockerfile ubuntu 14.04、cuda 8.0、cudnn 6.0中的引用格式无效

你需要通过一个名为 IMAGE_NAME

docker build --build-arg IMAGE_NAME=nvidia/cuda .

输出:

Step 1/7 : ARG IMAGE_NAME
Step 2/7 : FROM ${IMAGE_NAME}:8.0-devel-ubuntu14.04
8.0-devel-ubuntu14.04: Pulling from nvidia/cuda
6 年前
回复了 Mostafa Hussein 创建的主题 » 为同一Docker容器的多个实例分配不同的公共IP

为了给docker容器分配公共IP,您需要使用 Macvlan network driver 例如:

Macvlan网络驱动程序可用于为每个容器分配一个MAC地址虚拟网络接口,使其看起来是一个直接连接到物理网络的物理网络接口。

docker network create -d macvlan -o macvlan_mode=bridge --subnet=172.16.86.0/24 --gateway=172.16.86.1 -o parent=eth0 pub_net

然后创建将使用上述网络的容器:

docker run --name web_container --net=pub_net --ip=172.16.86.2 --mac-address 25-EE-4E-B5-21-48 -itd nginx

现在有一个面向公众的容器在运行 172.16.86.2 从同一个docker镜像中,你可以运行多个docker容器并为每个容器分配一个公共IP。

6 年前
回复了 Mostafa Hussein 创建的主题 » 使用命令行安装docker for Mac时出现问题?

上面的错误意味着 docker

根据 this thread 这是一个有点旧,但仍然没有本地支持您的情况,这就是为什么您会注意到,有自定义项目,如 this comment

6 年前
回复了 Mostafa Hussein 创建的主题 » Docker节点应用无法连接链接的mysql容器

depends_on 不是要验证MySQL是否已经准备好接收连接。一旦数据库容器正在运行,它将启动第二个容器,而不管它是否准备好进行连接,这可能会导致应用程序出现问题,因为它希望数据库准备就绪,但这可能不是真的。

引自 the documentation :

depends不等待db和redis在启动web之前准备好,直到它们已经启动。

如果您需要等待服务就绪,请参见 Controlling startup order 关于这个问题的更多信息和解决策略。

由于设置原因,无法创建MySQL根用户 MYSQL_USER 要root用户,因为该用户已经存在于数据库中,并且尝试创建另一个。如果需要使用根用户本身,则只能使用此变量 MYSQL_ROOT_PASSWORD 或者改变 MYSQL_用户 因此,您可以在应用程序中安全地使用它,而不是在根用户中使用它。

6 年前
回复了 Mostafa Hussein 创建的主题 » AWS ECR上的Docker图像大小已更改

这是由于Docker客户端在将图像推送到ECR之前的行为,所以ECR仪表板上的大小是图像压缩版本的大小 documented 以下内容:

从Docker1.9版开始,Docker客户端在将图像层推送到v2 Docker注册表之前压缩它们。docker images命令的输出显示未压缩的图像大小,因此它可能返回比aws管理控制台中显示的图像大小更大的图像大小。

6 年前
回复了 Mostafa Hussein 创建的主题 » 如何用导出的表和行创建dynamodb本地docker实例?

我不确定官方的dynamodb本地是否默认支持这一点,而且看起来您需要一个将csv导入dynamodb的自定义脚本,但是您可以根据需要创建一个自定义图像。例如,你可以从一个简单的 Dockerfile 使用 amazon/dynamodb-local 然后添加一个python脚本,该脚本将负责导入csv文件,因此步骤可能如下:

  • 在容器中装入csv,可能在容器内部 /docker-entrypoint-initdb.d
  • 创建一个entrypoint.sh脚本,将其用作容器的入口点,并检查其中是否有任何csv文件 /docker入口点initdb.d 以便将其传递给python脚本- 下面添加的代码 -它将加载到dynamodb中,例如如下所示(取自 mongodb's entrypoint )以下内容:
        for f in /docker-entrypoint-initdb.d/*; do
            case "$f" in
                # if csv file pass it to the python script
                *.csv) echo "$0: running $f"; . "$f" ;;
                *)    echo "$0: ignoring $f" ;;
            esac
            echo
        done
  • 下面的代码不是我测试或创建的,我只是从下面的链接复制了它 Import a CSV file into a DynamoDB table using boto (Python package) ,您可以根据需要修改它,或者构建自己的脚本,或者如果您有更好的建议,请通知我以便更新答案。

  • boto支持dynamodb local,如下所述 answer 这意味着您可以修改脚本使其与dynamodb local一起工作

import boto

MY_ACCESS_KEY_ID = 'copy your access key ID here'
MY_SECRET_ACCESS_KEY = 'copy your secrete access key here'


def do_batch_write(items, table_name, dynamodb_table, dynamodb_conn):
    '''
    From https://gist.github.com/griggheo/2698152#file-gistfile1-py-L31
    '''
    batch_list = dynamodb_conn.new_batch_write_list()
    batch_list.add_batch(dynamodb_table, puts=items)
    while True:
        response = dynamodb_conn.batch_write_item(batch_list)
        unprocessed = response.get('UnprocessedItems', None)
        if not unprocessed:
            break
        batch_list = dynamodb_conn.new_batch_write_list()
        unprocessed_list = unprocessed[table_name]
        items = []
        for u in unprocessed_list:
            item_attr = u['PutRequest']['Item']
            item = dynamodb_table.new_item(
                    attrs=item_attr
            )
            items.append(item)
        batch_list.add_batch(dynamodb_table, puts=items)


def import_csv_to_dynamodb(table_name, csv_file_name, colunm_names, column_types):
    '''
    Import a CSV file to a DynamoDB table
    '''        
    dynamodb_conn = boto.connect_dynamodb(aws_access_key_id=MY_ACCESS_KEY_ID, aws_secret_access_key=MY_SECRET_ACCESS_KEY)
    dynamodb_table = dynamodb_conn.get_table(table_name)     
    BATCH_COUNT = 2 # 25 is the maximum batch size for Amazon DynamoDB

    items = []

    count = 0
    csv_file = open(csv_file_name, 'r')
    for cur_line in csv_file:
        count += 1
        cur_line = cur_line.strip().split(',')

        row = {}
        for colunm_number, colunm_name in enumerate(colunm_names):
            row[colunm_name] = column_types[colunm_number](cur_line[colunm_number])

        item = dynamodb_table.new_item(
                    attrs=row
            )           
        items.append(item)

        if count % BATCH_COUNT == 0:
            print 'batch write start ... ', 
            do_batch_write(items, table_name, dynamodb_table, dynamodb_conn)
            items = []
            print 'batch done! (row number: ' + str(count) + ')'

    # flush remaining items, if any
    if len(items) > 0: 
        do_batch_write(items, table_name, dynamodb_table, dynamodb_conn)


    csv_file.close() 


def main():
    '''
    Demonstration of the use of import_csv_to_dynamodb()
    We assume the existence of a table named `test_persons`, with
    - Last_name as primary hash key (type: string)
    - First_name as primary range key (type: string)
    '''
    colunm_names = 'Last_name First_name'.split()
    table_name = 'test_persons'
    csv_file_name = 'test.csv'
    column_types = [str, str]
    import_csv_to_dynamodb(table_name, csv_file_name, colunm_names, column_types)


if __name__ == "__main__":
    main()
    #cProfile.run('main()') # if you want to do some profiling

测试.CSV的内容(必须位于与Python脚本相同的文件夹中):

John,Doe
Bob,Smith
Alice,Lee
Foo,Bar
a,b
c,d
e,f
g,h
i,j
j,l
6 年前
回复了 Mostafa Hussein 创建的主题 » 文件Laravel与DOCKER文件权限-不能编辑文件

您需要做的只是从主机本身更改挂载目录的权限,例如,如果主机上有以下目录 /home/lykos/laravel/data 您需要将其安装在Docker容器中,如下所示:

  • 检查 UID GID 在用来制造 例如,你可能会发现 UID GID 具有 以下值 1000 然后从主机运行以下命令 命令 chown 1000:1000 /home/lykos/laravel/data

现在,laravel应用程序应该能够在您将其用作目标的任何目录中编写 /主页/lykos/laravel/data 并确保在没有确认您拥有正确权限的情况下不会对其进行修改,例如,除非您这样做,否则不要在其中手动创建另一个目录 chown 创建之后。

上述解决方案适用于将用于写入该目录的用户,如果有其他用户需要确保通过linux acl而不是使用world权限授予他们适当的权限(777)

假设您有一个容器作为web服务器,并且在从本地主机进行开发时需要将应用程序托管在容器中。假设用于开发的本地主机用户是 lykos web服务器使用的容器用户是 33 对于 UID GID 您可以从本地主机执行以下操作:

sudo chown 33:33 /home/lykos/laravel/data -R
sudo setfacl -Rm u:lykos:rwx,d:u:lykos:rwx /home/lykos/laravel/data

上面的命令将使web服务器能够访问和更新项目文件。并且还使本地主机能够修改当前文件和新创建的文件(请注意,如果您使用 莱科斯 需要创建的用户 乔恩 匹配web服务器uid)

6 年前
回复了 Mostafa Hussein 创建的主题 » Docker无法连接到容器公开端口

因此,可以将问题分解为以下步骤:

  1. 检查 docker inspect docker ps 确保正确暴露端口的结果
  2. 尝试使用公用IP连接到它。例如,如果您收到错误消息

    • 连接被拒绝 :原因可能是容器中的应用程序未按预期运行。例如,您需要确保应用程序绑定到 0.0.0.0 而不是 127.0.0.1

    • 连接超时 :原因可能是服务器外部的防火墙,如AWS或类似的安全组,或者Docker没有管理服务器防火墙(这不是默认设置)

6 年前
回复了 Mostafa Hussein 创建的主题 » 深度学习对数似然

MSE or Mean Squared Error 只是预测值和基本真值标签之间的平方差的期望值,表示为

\text{MSE}(\hat{\theta}) = E\left[(\hat{\theta} - \theta)^2\right]

哪里 θ 是基本真理的标签 西塔帽 是预测的标签吗

我不确定你指的到底是什么,像是理论问题还是代码的一部分

作为一个 蟒蛇 实施

def mean_squared_error(A, B):    
     return np.square(np.subtract(A,B)).mean()

yt = [[1,0,0],[0,0,1]] 
yp = [[0.9, 0.2,0.2], [0.2,0.8,0.3]]

mse = mean_squared_error(yt, yp) 
print(mse)

这将给出 0.21

如果您使用的是 TensorFlow ,那么他们已经提供了 function 计算张量之间的mse损失

tf.losses.mean_squared_error

哪里

tf.losses.mean_squared_error(
    labels,
    predictions,
    weights=1.0,
    scope=None,
    loss_collection=tf.GraphKeys.LOSSES,
    reduction=Reduction.SUM_BY_NONZERO_WEIGHTS
)

ARG:

标签: 地面真值输出张量,与“预测”的维数相同。

预言: 预测的输出。

重量: 可选的张量,其秩为0,或与标签的秩相同,并且必须可广播到标签(即,所有维度 必须是1,或与相应的损失维度相同)。

经营范围: 计算损失的操作范围。

托收损失: 将要添加损失的集合。

还原: 适用于损失的减少类型。

返回:

加权损失浮动张量。如果减量为无,则这与 形状作为标签;否则,它是标量。

6 年前
回复了 Mostafa Hussein 创建的主题 » 拒绝访问Gitlab Docker容器输出连接

映射端口时,应使用主机IP通过映射端口进行访问。

所以如果你需要访问端口 80 使用容器IP。 如果您需要访问端口 3000 使用主机IP或主机本身的本地主机,或者即使主机内部有一个私有接口。

所以这个命令: wget -O- https://172.25.0.2:3000 这意味着您正在与容器直接对话,而不是通过映射端口,并请求在端口3000上侦听的服务,这是不正确的,因此结果将是连接被拒绝。

您需要添加 npm-debug.log* 给你的 .gitignore 文件,因为 .git忽略 文件意味着 npm-debug.log 只有。

添加星号 * 将确保以 npm-debug.log文件 将被忽略

如果要从计算机中永久删除它们,请使用以下命令:

rm -f npm-debug.log.*