diff --git a/src/accelerate/commands/launch.py b/src/accelerate/commands/launch.py
index 8d4138651..e6a23e46d 100644
--- a/src/accelerate/commands/launch.py
+++ b/src/accelerate/commands/launch.py
@@ -16,6 +16,7 @@
 
 import argparse
 import importlib
+import logging
 import os
 import subprocess
 import sys
@@ -24,6 +25,8 @@
 from pathlib import Path
 from typing import Dict, List
 
+import torch
+
 from accelerate.commands.config import default_config_file, load_config_from_file
 from accelerate.commands.config.config_args import SageMakerConfig
 from accelerate.utils import (
@@ -40,6 +43,9 @@
 from accelerate.utils.dataclasses import SageMakerDistributedType
 
 
+logger = logging.getLogger(__name__)
+
+
 def launch_command_parser(subparsers=None):
     if subparsers is not None:
         parser = subparsers.add_parser("launch")
@@ -659,6 +665,7 @@ def launch_command(args):
         raise ValueError("You can only pick one between `--multi_gpu`, `--use_deepspeed`, `--tpu`, `--use_fsdp`.")
 
     defaults = None
+    warned = []
     # Get the default from the config file.
     if args.config_file is not None or os.path.isfile(default_config_file) and not args.cpu:
         defaults = load_config_from_file(args.config_file)
@@ -684,7 +691,6 @@ def launch_command(args):
                     and getattr(args, name, None) is None
                 ):
                     setattr(args, name, attr)
-
         if not args.mixed_precision:
             if args.fp16:
                 args.mixed_precision = "fp16"
@@ -692,7 +698,32 @@ def launch_command(args):
                 args.mixed_precision = defaults.mixed_precision
     else:
         if args.num_processes is None:
+            warned.append("\t`--num_processes` was set to a value of `1`")
             args.num_processes = 1
+        if args.num_machines is None:
+            warned.append("\t`--num_machines` was set to a value of `1`")
+            args.num_machines = 1
+        if args.mixed_precision is None:
+            warned.append("\t`--mixed_precision` was set to a value of `'no'`")
+            args.mixed_precision = "no"
+        if not hasattr(args, "use_cpu"):
+            args.use_cpu = args.cpu
+    if args.multi_gpu and args.num_processes == 1:
+        args.num_processes = torch.cuda.device_count()
+        if not any("--num_processes" in warn for warn in warned):
+            warned.append(f"\t`--num_processes` was set to `{args.num_processes}`")
+        else:
+            for i, warn in enumerate(warned):
+                if "--num_processes" in warn:
+                    warned[i] = warn.replace("`1`", f"`{args.num_processes}`")
+
+    if any(warned):
+        message = "The following values were not passed to `accelerate launch` and had defaults used instead:\n"
+        message += "\n".join(warned)
+        message += (
+            "\nTo avoid this warning pass in values for each of the problematic parameters or run `accelerate config`."
+        )
+        logger.warn(message)
 
     # Use the proper launcher
     if args.use_deepspeed and not args.cpu:


Review comments: body: ```suggestion
            logger.warn("To avoid these warnings pass in values for each of the problematic parameters or run `accelerate config`.")
```
diff_hunk: @@ -692,16 +696,26 @@ def launch_command(args):
             else:
                 args.mixed_precision = defaults.mixed_precision
     else:
+        warned = False
         if args.num_processes is None:
+            logger.warn("`--num_processes` was not set, using a value of `1`.")
+            warned = True
             args.num_processes = 1
         if args.num_machines is None:
+            warned = True
+            logger.warn("`--num_machines` was not set, using a value of `1`.")
             args.num_machines = 1
         if args.mixed_precision is None:
+            warned = True
+            logger.warn("`--mixed_precision` was not set, using a value of `'no'`.")
             args.mixed_precision = "no"
         if not hasattr(args, "use_cpu"):
-            args.use_cpu = torch.cuda.is_available()
+            args.use_cpu = args.cpu
+        if warned:
+            logger.warn("To avoid these warnings pass in values for each of the problematic parameters")
body: This one should have the text above to avoid warning (which you can put in a constant).
diff_hunk: @@ -692,16 +696,26 @@ def launch_command(args):
             else:
                 args.mixed_precision = defaults.mixed_precision
     else:
+        warned = False
         if args.num_processes is None:
+            logger.warn("`--num_processes` was not set, using a value of `1`.")
+            warned = True
             args.num_processes = 1
         if args.num_machines is None:
+            warned = True
+            logger.warn("`--num_machines` was not set, using a value of `1`.")
             args.num_machines = 1
         if args.mixed_precision is None:
+            warned = True
+            logger.warn("`--mixed_precision` was not set, using a value of `'no'`.")
             args.mixed_precision = "no"
         if not hasattr(args, "use_cpu"):
-            args.use_cpu = torch.cuda.is_available()
+            args.use_cpu = args.cpu
+        if warned:
+            logger.warn("To avoid these warnings pass in values for each of the problematic parameters")
 
     if args.multi_gpu and args.num_processes == 1:
+        logger.warn("`--multi_gpu` was passed but `num_processes` was not set. Automatically using all available GPUs")

Discussion: body: _The documentation is not available anymore as the PR was closed or merged._