AI Model

Tools

当配置 Samba 服务器以供 macOS 访问共享文件夹时,以下是详细的步骤:

  1. 安装 Samba 服务器:
    在 Linux 服务器上使用适当的软件包管理器安装 Samba 服务器。具体命令可能因 Linux 发行版而异。例如,在 Ubuntu 上,可以使用以下命令安装 Samba:

    sudo apt-get install samba
  2. 打开 Samba 配置文件:
    使用你喜欢的文本编辑器(如vi、nano等)打开 Samba 的配置文件 smb.conf

    sudo vi /etc/samba/smb.conf
  3. 定义共享文件夹:
    smb.conf 文件中,你需要添加共享文件夹的配置。找到 [global] 段,并在其下面添加以下内容:

    [shared]
    comment = Shared Folder
    path = /path/to/shared/folder
    writable = yes
    guest ok = no

    /path/to/shared/folder 替换为实际的共享文件夹路径。[shared] 是共享文件夹的名称,你可以自定义。comment 是对该共享文件夹的描述,writable 指定是否允许写入访问,guest ok 指定是否允许匿名访问。

  4. 配置访问权限:
    可以通过添加适当的权限选项来控制共享文件夹的访问权限。例如,如果只想允许特定用户访问,可以添加以下行:

    valid users = username

    username 替换为允许访问共享文件夹的用户名。

  5. 保存并关闭文件:
    在编辑完 smb.conf 文件后,保存并关闭该文件。

  6. 设置 Samba 用户密码:
    使用以下命令为 Samba 用户设置密码。这些用户可以访问共享文件夹:

    sudo smbpasswd -a username

    username 替换为要设置密码的用户名。按照提示输入密码并确认。

  7. 启动 Samba 服务:
    使用以下命令启动 Samba 服务:

    sudo service smbd start
  8. 配置防火墙(如果需要):
    如果你的 Linux 服务器上启用了防火墙,你需要确保 Samba 服务的端口(默认是 TCP 端口 139 和 445)是开放的。具体的防火墙配置方法可能因不同的防火墙软件而异。

  9. 在 macOS 上访问共享文件夹:
    在 macOS 上打开 Finder 应用程序,并在菜单栏中选择「前往」->「连接服务器」,或使用快捷键 Command + K。在弹出的对话框中,输入以下地址:

    smb://linux_server_ip/shared

    linux_server_ip 替换为 Linux 服务器的 IP 地址

当使用 Conda 管理虚拟环境时,以下是一些常用的相关指令:

  1. 创建虚拟环境

    conda create --name myenv   # 创建名为 myenv 的虚拟环境
  2. 激活虚拟环境
    在 Windows 上:

    conda activate myenv   # 激活名为 myenv 的虚拟环境

    在 macOS 和 Linux 上:

    source activate myenv   # 激活名为 myenv 的虚拟环境
  3. 退出虚拟环境
    在 Windows 上:

    conda deactivate   # 退出当前虚拟环境

    在 macOS 和 Linux 上:

    source deactivate   # 退出当前虚拟环境
  4. 查看已有虚拟环境

    conda info --envs   # 查看所有已存在的虚拟环境
  5. 删除虚拟环境

    conda env remove --name myenv   # 删除名为 myenv 的虚拟环境
  6. 安装包到虚拟环境

    conda install package_name   # 安装名为 package_name 的包到激活的虚拟环境
  7. 查看当前虚拟环境中已安装的包

    conda list   # 查看当前虚拟环境中已安装的包
  8. 导出虚拟环境配置

    conda env export > environment.yml   # 将虚拟环境配置导出到 environment.yml 文件
  9. 从配置文件创建虚拟环境

    conda env create -f environment.yml   # 从 environment.yml 文件创建虚拟环境
  10. 更新虚拟环境中的包

    conda update package_name   # 更新虚拟环境中名为 package_name 的包

这些指令可以帮助你在 Conda 中创建、管理和操作虚拟环境以及安装和管理软件包。请注意,某些指令可能会因 Conda 版本而略有不同,因此在使用时请查阅相关文档或使用 conda --help 获取更多帮助信息。

  • 使用 Pipenv 管理虚拟环境:Easily Manage Packages and Virtual Environments
  • Importing Your Own Python Modules Properly 以及How to Use the __init__.py File
    • What is init.py file in Python Packages? Explained with Example

      在Python中,包(Package)和模块(Module)是组织代码的两种不同方式,它们有着一些区别和特点。

      模块(Module)

      1. 定义:模块是一个单一的文件,其中包含一组相关的代码。它可以包含变量、函数、类等。
      2. 组织性:模块用于将相关的代码组织在一起,以便于管理和重用。
      3. 导入:您可以使用 import 语句将模块中的内容导入到其他文件中,以便在其他地方使用。
      4. 命名空间:模块具有自己的命名空间,模块中定义的变量、函数和类在该命名空间中。

      包(Package)

      1. 定义:包是一个由一组相关模块组成的目录,其中包含一个特殊的 __init__.py 文件。这个文件用于指示Python解释器该目录是一个包。
      2. 组织性:包用于更高级别的代码组织,可以将不同模块按主题或功能组织在不同的包中。
      3. 导入:您可以使用点号(.)语法来导入包中的模块,例如 import package.module
      4. 子包:包内部可以包含子包,从而形成一个层次化的组织结构。

      总结来说,模块是一个文件,用于组织相关的代码片段,而包是一个包含模块的目录,用于更高级别的组织和管理。通常,如果您只有少量的相关代码,可以使用模块来组织;如果您有多个相关模块,可以将它们放在一个包中。包的层次结构可以帮助更好地组织大型项目,并提供更好的命名空间隔离。

示例:当创建一个简单的 Python 包时,以如下示例演示

假设我们要创建一个名为 “mathutils” 的包,其中包含一些数学实用函数。

  1. 创建包目录结构
    在您的工作目录中,创建一个新的文件夹,作为您的包的主目录。

    mkdir mathutils
    cd mathutils
  2. 创建 __init__.py 文件
    在包目录中创建一个名为 __init__.py 的文件,用于指示 Python 解释器该文件夹是一个包。

    touch __init__.py
  3. 创建模块文件
    在包目录中,创建一个名为 operations.py 的模块文件,其中包含一些数学操作函数。

    touch operations.py
  4. 编辑 operations.py 文件
    operations.py 文件中,编写一些数学操作函数。

    def add(a, b):
        return a + b
    
    def subtract(a, b):
        return a - b
  5. 编辑 __init__.py 文件
    __init__.py 文件中,将模块中的函数导入到包级别。

    from .operations import *
  6. 测试
    创建一个名为 test_mathutils.py 的测试文件,并编写测试用例来测试您的数学操作函数。

    from mathutils.operations import add, subtract
    
    def test_add():
        assert add(2, 3) == 5
    
    def test_subtract():
        assert subtract(5, 2) == 3
  7. 创建 setup.py 文件(可选):
    创建一个名为 setup.py 的文件来提供包的元数据。

    from setuptools import setup, find_packages
    
    setup(
        name='mathutils',
        version='0.1',
        packages=find_packages(),
    )
  8. 测试和安装
    使用以下命令在虚拟环境中测试和安装您的包:

    pip install .
  9. 使用包
    在其他项目中,您可以使用以下方式导入和使用您的包:

    from mathutils.operations import add, subtract
    
    print(add(5, 3))       # Output: 8
    print(subtract(10, 4)) # Output: 6

这是一个简单的示例,说明了如何创建一个 Python 包并在其他项目中使用它。对于更复杂的包,您可能需要添加更多功能、文档和测试,以确保其正确性和可维护性。

  • Make Python code 1000x Faster with Numba

    • Numba的性能优势在于处理数值密集型的计算任务,而对于其他类型的任务可能效果不明显。因此,在使用Numba时,建议将重点放在需要大量数值计算的部分代码上,以获得最佳的加速效果
  • 命令行含义

在命令行说明中,不同括号的含义通常如下所示,并附有一些示例:

  1. 尖括号(<>) - 表示必需参数:
    尖括号用于表示必须提供的参数,这些参数是命令执行所必需的。您需要将尖括号中的内容替换为实际的值。

    示例:

    git commit -m "<commit_message>"

    在这里,<commit_message> 是您需要替换为实际提交信息的参数。

  2. 中括号([]) - 表示可选参数:
    中括号用于表示可选的参数,这些参数可以选择性地提供给命令。您可以根据需要决定是否使用这些参数。

    示例:

    mkdir [-p] <directory_name>

    这里,-p 是一个可选的标志,用于创建父目录。<directory_name> 是必需的目录名称。

  3. 大括号({}) - 表示选择一个选项:
    大括号用于表示一组选项中的一个选择,您需要从这些选项中选择一个来使用。

    示例:

    scp <file> {user1@host1:directory | user2@host2:directory}

    在这里,您需要选择要传输到的远程主机和目录。

  4. 竖线(|) - 表示选择一个选项:
    竖线用于表示在多个选项中选择一个。

    示例:

    display {line | bar | pie} <data>

    这里,您可以选择要使用的图表类型。

  5. 圆括号(()) - 表示组合多个参数:
    圆括号用于将多个参数组合在一起,通常用于说明参数的顺序。

    示例:

    chmod (u+r | g+w | o-x) <file>

    在这里,您可以选择要对文件进行的权限更改操作。

这些示例说明了不同括号在命令行说明中的使用。括号的含义和用法可能会因命令而异,因此在使用命令时,始终要查看具体的命令行帮助或文档,以确保正确理解和使用参数和选项。

  • gradio
    • 有了 Gradio,可以根据机器学习模型或数据科学工作流程快速创建一个漂亮的用户界面,让用户通过拖放自己的图片、粘贴文本、录制自己的声音和与你的演示demo进行交互,所有这些都可以通过浏览器进行
  • langchain
    • Question Answering over specific documents
    • Chatbots
    • Agents
  • ImageBind: Holistic AI learning across six modalities论文示例

Hardware

AI Preliminary

image.png

image.png

AI应用 & 发展

NAS

  • MIT Song Han Lab
    • AI Lecture,其中 Lecture 7,8,9 包含了 Neural Architecture Search (Part I, II, III) | MIT 6.S965 的课件及Youtube Video

Preliminary

仿真环境

LLM and Robot

survey

多机协同交互


   转载规则


《AI Model》 M 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
基类派生类及动态绑定 基类派生类及动态绑定
使用基类的引用或者指针调用一个虚成员函数时才会执行动态绑定 定义基类和派生类定义基类class Quote{ private: string bookNo; protected: double price=0; publ
2020-07-09
下一篇 
CPP教程笔记 CPP教程笔记
菜鸟教程 安装CLion(2020版,2021版(提取码1111))及配置 ROS教程 中科院软件所-机器人操作系统入门(ROS入门教程) 课程讲义 古月 · ROS入门21讲 ROS官网教程 基础教程函数参数默认值
2020-06-14
  目录